forfiles を使用して、更新された .xlsx ファイル (1 日未満) のフォルダーをチェックし、更新されたファイルがあるかどうかに応じて別のバット ファイルを実行しようとしています。
最初はこれを行うスクリプトがありましたが、ある日、複数の新しい .xlsx ファイルがあったため、スクリプトが「ループ」し、success.bat ファイルを複数回実行しました。
更新されたファイルが見つからない場合、cmd はエラーで終了するので、それを利用して fail.bat ファイルを実行しました。
これは私が現時点で持っているものです:
@echo on
set found=0
forfiles /p C:\ /m *.xlsx /d 0 /c "cmd /k set found=1"
if /i %found%==1 (
Call Success.bat
) else (
if /i %found%==0 (
Call Fail.bat
)
PAUSE
これで、更新されたファイルがある場合に問題なく動作します。つまり、ループの問題が解消されます。
しかし、更新されたファイルが見つからず、使用している場合、cmd が終了するという問題が発生しました。
if ERRORLEVEL 1 call fail.bat
もう私にはうまくいかないようです....batファイルを使用したこのif/elseは得意ではありません