私はバッチスクリプトを作成して、そのディレクトリからビデオファイルを抽出しています。
これまでのところ、特定の名前と一致するディレクトリに移動しています。私はそのディレクトリ内のすべての項目に対してFOR
ループを実行しています。私は項目がディレクトリ(私は以前に行った)であるかどうかを確認したい場合は、そのディレクトリに移動し、他のものを行う。
IFステートメントがバッチスクリプトを中断する
問題は、第二IF
文のことである(項目がディレクトリかであるかどうかを確認するためには)エラーを与えて、バッチスクリプトを破壊されています
) was unexpected at this time
私はそのIF
を削除する場合コードは期待どおりに実行されます(IF
ステートメントはコードにあります)
CODE:
@ECHO off
SET title=%1
SET mp4=".mp4"
SET mkv=".mkv"
SET avi=".avi"
SET minimumSize=300
SET needCompressingDir="E:\Documents\Films\Need_compressing"
CD %needCompressingDir%
FOR /f "delims=" %%i IN ('DIR /B') DO (
IF %%i == %title% (
IF EXIST %%i (
CD %%i
FOR /f "delims=" %%j IN ('DIR /B') DO (
rem this 'IF' statement breaks it
IF EXIST %%j (
) ELSE (
)
)
) ELSE (
MOVE %%i %needCompressingDir%
)
)
)
'%% j'によって返されたファイル名に空白が含まれていますか?あなたは 'if exist" %% j "'(もし存在すれば "%% i" ')を使ってみるべきです。 – SomethingDark
@SomethingDarkはい、それが起こる可能性があります。洞察のおかげで、可能な限りその方法を試してみましょう。 – wmash
'IF EXIST" %%〜j "' – npocmaka