・以下のようなバッチで、フォルダ配下の特定のフォルダ件数を2つ取得して、それが一致していれば正常終了、一致していなければ異常終了という処理を書いています。
・しかし、 if %FOLDERCOUNT1% == %FOLDERCOUNT2%のところで変数が空になっているようで、構文エラー(if ==)とみなされてしまい処理が正常に行えません。ここの分岐を例えば1==1と変えるとエラーが出なくなるので、エラー箇所はそこで間違いないと思っているのですが、原因がわからなくて困っています。
・if文の中でのSETを行っているので、遅延環境変数を有効にしないといけないのかなと思い有効にしてみましたが、それでも構文エラーとなりました。
・%RESULT%には0が入っていることは確認済みです。
IF %RESULT% == 0 ( set FOLDERCOUNT1=0 set FOLDERCOUNT2=0 for /f "delims=" %%a in ('dir /ad /b C\:work\FOLDER1_* ^| find /c /v ""') do (set FOLDERCOUNT1=%%a) for /f "delims=" %%i in ('dir /ad /b C:\work\FOLDER2_* ^| find /c /v ""') do (set FOLDERCOUNT2=%%i) :ここでエラーになる if %FOLDERCOUNT1% == %FOLDERCOUNT2% ( exit /b 0 ) else ( exit /b 1 ) )
アドバイス
回答1件
あなたの回答
tips
プレビュー