为程序执行和错误日志更正变量“Set”的语法

时间:2016-11-05 18:28:17

标签: batch-file variables cmd batch-processing

我正在创建无人参与的批处理文件程序,但是正确检测变量才能正常运行。

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"

应该使用什么语法来正确运行安装文件和有关程序的错误日志?

1 个答案:

答案 0 :(得分:0)

您可以使用:

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""

必须使用立即扩展引用环境变量installjava,即使%installjava%真正用作执行命令行。

请参阅Why is no string output with 'echo %var%' after using 'set var = text' on command line?上的答案为什么使用此处必需的语法set "variable=value",因为在分配命令时,运算符||>>被解释为文字字符线到环境变量。

ECHO 没有双引号,因为这些双引号也会写入错误日志文件。此外,重定向操作符>>没有剩余空间来将错误消息写入错误日志文件而没有尾随空格字符。