Я пишу пакет script, который будет проходить через каждую строку текстового файла (каждая строка, содержащая имя файла), проверьте, существует ли файл, а затем запускает файл и перемещает его.
Вот моя партия script:
REM Loop through each line of input.txt
FOR /F "tokens=1-3 delims=, " %%i IN (./ready/input.txt) DO (
ECHO.
ECHO.
ECHO.
ECHO Check %%i exists, set error flag if it doesnt
if not exist .\ready\%%i set errorlevel=2
echo return code is %errorlevel%
ECHO Run %%i if it exists
if errorlevel 0 call .\ready\%%i
ECHO Move %%i to archive if no error occured
if errorlevel 0 copy .\ready\%%i .\archive\%mydate%_%mytime%_%%j_%%k_%%i
ECHO Copy line of text to the new output.txt file if an error occured
if %errorlevel% NEQ 0 >>output.txt %%i, %%j, %%k
)
Вот результат:
Я не понимаю, почему "if errorlevel" работает не так, как ожидалось... если файл не существует (как в этом примере, где он не существует), он НЕ должен запускать файл, он НЕ должен скопируйте файл, и он должен повторить 2, а не 0
Изменить 1. Я читал еще одну SO Post относительно "задержки изменения переменной среды". Я не уверен, связана ли эта проблема