Arquivo em lote do Windows - Como canalizar a saída para o arquivo de texto e, em seguida, abrir o arquivo de texto?

0

Eu tenho um problema estranho em que tenho um arquivo de lote simples que executa outro arquivo de lote, envia o que está na tela para um arquivo de log e, em seguida, tenta abrir o arquivo de log. O problema é que o arquivo de log não abre. Aqui está o 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

Por meio de teste e erro, descobri que comentar a chamada para o arquivo de lote externo torna o arquivo de log aberto, conforme o esperado.

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

Só para verificar, eu também troquei o outro arquivo de lote por outro que simplesmente faz echo Hello World , mas o problema continua - o arquivo de log não abre. Eu pensei que havia algo acontecendo no outro arquivo em lote que estava causando a falha, mas não parece ser o caso - este exemplo ainda não está funcionando.

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

Minha pergunta é: por que o arquivo de log não abre e como faço para corrigi-lo?

    
por NightOwl888 30.07.2014 / 19:31

1 resposta

1

cmd vincula a um arquivo em lotes, ou seja, o arquivo em lote chamado substitui o arquivo em lote de chamada e não retorna, portanto, todas as chamadas após a chamada em lote nunca serão vistas. Se você quiser retornar de um arquivo em lote, use o comando call , como em:

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

Não é o que você pode esperar, mas uma decisão ruim de design no DOS ainda está conosco, receio. Não tenho certeza de quantos arquivos de lote DOS1 são usados nas versões modernas do Windows, mas posso arriscar um palpite.

    
por 30.07.2014 / 20:03