Пакетный файл Windows — как направить вывод в текстовый файл, а затем открыть текстовый файл?

Пакетный файл Windows — как направить вывод в текстовый файл, а затем открыть текстовый файл?

У меня странная проблема, когда у меня есть простой пакетный файл, который запускает другой пакетный файл, выводит то, что находится на экране, в файл журнала, а затем пытается открыть файл журнала. Проблема в том, что файл журнала не открывается. Вот код.

echo %date%, %time%: Deploying web site to Test1. > deploy.bat.log
Archive.deploy.cmd /Y /M:Test1 /U:<User> /P:<Password> >> deploy.bat.log
start "" notepad.exe deploy.bat.log

Методом проб и ошибок я обнаружил, что комментирование вызова внешнего пакетного файла приводит к открытию файла журнала, как и ожидалось.

echo %date%, %time%: Deploying web site to Test1. > deploy.bat.log
REM Archive.deploy.cmd /Y /M:Test1 /U:<User> /P:<Password> >> deploy.bat.log
start "" notepad.exe deploy.bat.log

Просто для проверки я также заменил другой пакетный файл на тот, который просто делает echo Hello World, но проблема осталась - файл журнала не открывается. Я думал, что в другом пакетном файле что-то происходит, что приводит к сбою, но, похоже, это не так - этот пример по-прежнему не работает.

echo %date%, %time%: Deploying web site to Test1. > deploy.bat.log
Hello.bat
start "" notepad.exe deploy.bat.log

У меня вопрос: почему файл журнала не открывается и как это исправить?

решение1

cmdцепочка к пакетному файлу, т.е. вызванный пакетный файл заменяет вызывающий пакетный файл и не возвращается, поэтому любые вызовы после пакетного вызова никогда не будут видны. Если вы хотите вернуться из пакетного файла, вы должны использоватьвызовкоманда, например:

echo %date%, %time%: Deploying web site to Test1. > deploy.bat.log
call Hello.bat
start "" notepad.exe deploy.bat.log

Не то, что вы могли бы ожидать, но, боюсь, раннее неудачное решение в дизайне DOS все еще с нами. Я не уверен, сколько пакетных файлов DOS1 используется в современных версиях Windows, но я могу рискнуть предположить.

Связанный контент