Archivo por lotes de Windows: ¿Cómo canalizar la salida a un archivo de texto y luego abrir el archivo de texto?

Archivo por lotes de Windows: ¿Cómo canalizar la salida a un archivo de texto y luego abrir el archivo de texto?

Tengo un problema extraño en el que tengo un archivo por lotes simple que ejecuta otro archivo por lotes, genera lo que está en la pantalla en un archivo de registro y luego intenta abrir el archivo de registro. El problema es que el archivo de registro no se abre. Aquí está el código.

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

A través de prueba y error, descubrí que comentar la llamada al archivo por lotes externo hace que el archivo de registro se abra, como se esperaba.

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

Solo para comprobarlo, también cambié el otro archivo por lotes por uno que simplemente funciona echo Hello World, pero el problema persiste: el archivo de registro no se abre. Pensé que algo estaba sucediendo en el otro archivo por lotes que estaba provocando que fallara, pero no parece ser el caso: este ejemplo todavía no funciona.

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

Mi pregunta es, ¿por qué no se abre el archivo de registro y cómo lo soluciono?

Respuesta1

cmdse encadena a un archivo por lotes, es decir, el archivo por lotes llamado reemplaza el archivo por lotes que realiza la llamada y no regresa, por lo que nunca se verán las llamadas posteriores a la llamada por lotes. Si desea regresar desde un archivo por lotes, debe utilizar elllamarcomando, como en:

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

No es lo que cabría esperar, pero me temo que todavía tenemos una mala decisión de diseño en DOS. No estoy seguro de cuántos archivos por lotes DOS1 se utilizan en las versiones modernas de Windows, pero puedo arriesgarme a adivinar.

información relacionada