2016-11-05 26 views
0

Ich erstelle unbeaufsichtigte Batch-Dateiprogramme, habe aber Probleme mit der korrekten Erkennung der Variablen, damit sie ordnungsgemäß ausgeführt wird.Korrekte Syntax der Variablen "Set" für Programmausführung und Fehlerprotokoll

SET installjava=JAVA\jre-8u111-windows-i586.exe /s AUTO_UPDATE=0 WEB_ANALYTICS=0 REBOOT=0 SPONSORS=0 REMOVEOUTOFDATEJRES=1 || ECHO "%time% Java install did not complete." >> "%Temp%\ERROR.TXT" 

Welche Syntax sollte verwendet werden, um die Installationsdatei und das Fehlerprotokoll über das Programm ordnungsgemäß auszuführen?

Antwort

0

könnten Sie verwenden:

SET "installjava=JAVA\jre-8u111-windows-i586.exe /s AUTO_UPDATE=0 WEB_ANALYTICS=0 REBOOT=0 SPONSORS=0 REMOVEOUTOFDATEJRES=1 || ECHO %time% Java install did not complete.>> "%Temp%\ERROR.TXT"" 

Die Umgebungsvariable installjava muss mit sofortiger Erweiterung Bezug genommen werden, das heißt mit %installjava% wirklich für die Ausführung als Kommandozeile zu arbeiten.

Siehe Antwort auf Why is no string output with 'echo %var%' after using 'set var = text' on command line? warum als wörtliche Zeichen auf die Zuweisung der Befehlszeile der Umgebungsvariablen mit der Syntax set "variable=value" die wegen der Betreiber notwendig ist hier || und >> zu interpretieren. Die ECHO ist ohne Anführungszeichen, da diese doppelten Anführungszeichen ebenfalls in die Fehlerprotokolldatei geschrieben würden Außerdem gibt es keinen Platz mehr für den Umleitungsoperator >>, um die Fehlermeldung in die Fehlerprotokolldatei ohne ein Leerzeichen nach dem Leerzeichen zu schreiben.

+0

Perfekt, gut erklärt und funktioniert, danke. – Yome

Verwandte Themen