我正在创建无人参与的批处理文件程序,但是正确检测变量才能正常运行。
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"
应该使用什么语法来正确运行安装文件和有关程序的错误日志?
答案 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 没有双引号,因为这些双引号也会写入错误日志文件。此外,重定向操作符>>
没有剩余空间来将错误消息写入错误日志文件而没有尾随空格字符。