シンプルだと思いますが、うまくいきません!たぶん誰かが助けることができます...
「07503.csv」ファイルが存在するかどうかを確認し、「07504.csv」、「07505.csv」...「07552.csv」までチェックするプログラムが必要です。ここでプログラムを終了するとします (私の問題を理解できるように簡略化されています)。
これは機能します:
SET angle=075
SET velocity=03
SET finalfilename=.csv
SET endofsequency=07552
SETLOCAL EnableDelayedExpansion
:loop
SET currentsequency=%angle%%velocity%
SET fullfilename=%currentsequency%%finalfilename%
:CHECK_FILES
IF EXIST %fullfilename% (
ECHO FILE FOUND: %fullfilename%
GOTO :GO_TROUGHT
) ELSE (
ECHO FILE NOT FOUND: %fullfilename%
GOTO :WRITE_LOG
)
:WRITE_LOG
ECHO %time% missing: %fullfilename%
ECHO %time% missing: %fullfilename% >> FilesMissed.txt
:GO_TROUGHT
FOR /F "tokens=* delims=0" %%A IN ("%velocity%") DO SET velocity=%%A
SET /A velocity+=1
SET velocity=000%velocity%
SET velocity=%velocity:~-2%
PAUSE
IF %currentsequency% NEQ %endofsequency% GOTO loop
:END
PAUSE
しかし、IF-ElSE ステートメントでは次のことはできません。
SET angle=075
SET velocity=03
SET finalfilename=.csv
SETLOCAL EnableDelayedExpansion
:loop
SET currentsequency=%angle%%velocity%
SET fullfilename=%currentsequency%%finalfilename%
:CHECK_FILES
IF EXIST %fullfilename% (
ECHO FILE FOUND: %fullfilename%
GOTO :GO_TROUGHT
) ELSE (
ECHO FILE NOT FOUND: %fullfilename%
GOTO :WRITE_LOG
)
:WRITE_LOG
ECHO %time% missing: %fullfilename%
ECHO %time% missing: %fullfilename% >> FilesMissed.txt
:GO_TROUGHT
IF "%velocity%" NEQ "52" (
FOR /F "tokens=* delims=0" %%A IN ("%velocity%") DO SET velocity=%%A
SET /A velocity+=1
SET velocity=000%velocity%
SET velocity=%velocity:~-2%
) ELSE (
GOTO :END
)
PAUSE
GOTO :loop
:END
PAUSE
私の質問はなぜですか?何が起こっていますか?IF-ELSE 内で FOR を使用できませんか? なるほど...
よろしく、