inilah bagian pertama dari skrip saya:
@echo off
cd /D "E:\[0] EE\feed\"
if exist "*.ss" (
if not exist "O.ss" (
FOR %%A IN (*.ss) DO (
IF /I NOT "%%~A"=="O2.ss" REN "%%~A" "O.ss" > nul 2>&1
)))
pause
dan ini adalah bagian kedua naskah saya:
@Echo off & SetLocal EnableExtensions EnableDelayedExpansion
Set "Video="
for /f "delims=" %%a in ('findstr /i "^Video=" job1.ini') do set "%%a"
"C:\Temp\mkvmerge.exe" -o "E:\done.mkv" --title "B 1" "%Video%" "C:\Temp\audio.flac"
pause
jika saya menjalankannya secara terpisah, mereka mengeksekusi seperti yang diharapkan, namun ketika saya bergabung dengan mereka seperti ini:
@Echo off & SetLocal EnableExtensions EnableDelayedExpansion
cd /D "E:\[0] EE\feed\"
if exist "*.ss" (
if not exist "O.ss" (
FOR %%A IN (*.ss) DO (
IF /I NOT "%%~A"=="O2.ss" REN "%%~A" "O.ss" > nul 2>&1
)))
Set "Video="
for /f "delims=" %%a in ('findstr /i "^Video=" job1.ini') do set "%%a"
"C:\Temp\mkvmerge.exe" -o "E:\done.mkv" --title "B 1" "%Video%" "C:\Temp\audio.flac"
pause
Saya mendapatkan kesalahan:
findstr: tidak bisa membuka job1.ini
Saya menganggap itu karena saya memiliki %% A di pernyataan IF itu?
apakah ada cara bagaimana cara memperbaikinya?
windows
command-line
batch-file
cmd.exe
gamer0
sumber
sumber
Jawaban:
Anda bisa mencoba ini:
Pada bagian pertama Anda mengubah dir jauh dari folder tempat batch dan mungkin juga job1.ini berada.
PushD
berfungsi seperticd /d
tetapi menyimpan lokasi lama pada tumpukan internal danPopD
mengembalikan lokasi yang disimpan.sumber