Windows-Batchdatei – Wie leitet man die Ausgabe in eine Textdatei um und öffnet dann die Textdatei?

Windows-Batchdatei – Wie leitet man die Ausgabe in eine Textdatei um und öffnet dann die Textdatei?

Ich habe ein seltsames Problem: Ich habe eine einfache Batchdatei, die eine andere Batchdatei ausführt, die Bildschirmanzeige in eine Protokolldatei ausgibt und dann versucht, die Protokolldatei zu öffnen. Das Problem ist, dass sich die Protokolldatei nicht öffnen lässt. Hier ist der Code.

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

Durch Ausprobieren habe ich herausgefunden, dass das Kommentieren des Aufrufs der externen Batchdatei die Protokolldatei wie erwartet öffnet.

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

Nur zur Kontrolle habe ich auch die andere Batchdatei durch eine ersetzt, die das einfach tut echo Hello World, aber das Problem bleibt bestehen – die Protokolldatei lässt sich nicht öffnen. Ich dachte, dass in der anderen Batchdatei etwas vor sich ging, das den Fehler verursachte, aber das scheint nicht der Fall zu sein – dieses Beispiel funktioniert immer noch nicht.

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

Meine Frage lautet: Warum lässt sich die Protokolldatei nicht öffnen und wie kann ich das Problem beheben, sodass es doch passiert?

Antwort1

cmdverkettet sich zu einer Batchdatei, d. h. die aufgerufene Batchdatei ersetzt die aufrufende Batchdatei und kehrt nicht zurück, so dass alle Aufrufe nach dem Batchaufruf nie gesehen werden. Wenn Sie aus einer Batchdatei zurückkehren möchten, müssen Sie denAnrufBefehl, wie in:

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

Nicht das, was Sie vielleicht erwarten, aber ich fürchte, eine frühe Fehlentscheidung in DOS ist immer noch vorhanden. Ich bin nicht sicher, wie viele DOS1-Batchdateien in modernen Windows-Versionen verwendet werden, aber ich kann eine Vermutung wagen.

verwandte Informationen