Как уже упоминалось в комментариях, все, что вы фактически сделали, - это создали копию Input.xtf
с именем run.bat
, а затем запустили это!
Вот как я интерпретировал ваше собственное code:
Input.xtf
- пустой файл или его содержимое неизвестно. Output.xtf
- каждая непустая строка из Input.xtf
, но с добавлением ::::
. run.bat
- это содержимое Output.xtf
, но с удаленным ведущим ::::
, что означает, что это то же самое, что Input.xtf
compiler.bat
- это каждая строка этого скрипта, ( list.cmd
), который начинается с ::::
, он создает и запускает run.bat
, а затем удаляет как Output.xtf
, так и себя.
На основе этой оценки предоставленный вами сценарий может с такой же легкостью выглядели следующим образом: (и даже тогда вы не смогли бы прочитать Loading .XTF file please wait!
, потому что команда CLS
эффективно очистит его, прежде чем вы успеете его прочитать).
@ECHO OFF
IF NOT EXIST "Input.xtf" (
CD.> "Input.xtf" 2> NUL
EXIT /B
)
COPY /Y "Input.xtf" "Run.bat" 2> NUL || EXIT /B
CLS
ECHO=
ECHO=
ECHO=
ECHO=
ECHO Loading .XTF file please wait!
ECHO=
ECHO=
CLS
ECHO=
ECHO=
ECHO=
ECHO=
ECHO Done! finalizing loading
ECHO=
ECHO=
START "Run.bat"
EXIT /B
Кроме того, поскольку Input.xtf
не может содержать абсолютно ничего, (поскольку вы создали 0-байтовый файл, i если его не было) , возможно, что CD.> "Input.xtf"
с последующим CD.> "Run.bat"
- это все, что вы сделали! Я предполагаю, что это не то, что вы хотели сделать, поэтому может быть лучше проверить, существует ли Input.xtf
и есть ли вместо этого контент. Удалив ненужные строки ECHO
, готовый сценарий мог бы выглядеть так:
@IF NOT EXIST "Input.xtf" CD.> "Input.xtf" 2> NUL
@"%__APPDIR__%FIND.EXE" /V "" "Input.xtf" 1> NUL || EXIT /B
@COPY /Y "Input.xtf" "Run.bat" 2> NUL || EXIT /B
@"Run.bat"