【发布时间】:2015-08-11 07:28:12
【问题描述】:
我的目标是将 %PF% 变量设置为 x64 机器上的 C:\ProgramFiles(x86)\MSBuild\ 和 x86 机器上的 C:\ProgramFiles\MSBuild\。 我可以很容易地做到这一点
IF DEFINED ProgramFiles(x86) SET PF=%ProgramFiles(x86)%\MSBuild\
IF NOT DEFINED ProgramFiles(x86) SET PF=%ProgramFiles%\MSBuild\
但我想在一个 IF ELSE 语句中做到这一点。
那个
IF DEFINED ProgramFiles(x86) (SET PF=%ProgramFiles(x86)%\MSBuild\) ELSE (SET PF=%ProgramFiles%\MSBuild\)
失败并出现意外的“\MSBuild\”错误。
那个
IF DEFINED ProgramFiles(x86) (SET PF="%ProgramFiles(x86)%\MSBuild\") ELSE (SET "PF=%ProgramFiles%\MSBuild\")
运行没有错误。
但结果值不是我需要的 ("%ProgramFiles(x86)%\MSBuild\" - 而不是 "C:\ProgramFiles(x86)\MSBuild\" 例如在 x64 机器上)。
那可能吗?
【问题讨论】:
-
目前您可以通过 Stephan 的答案解决您的问题,但是当您将代码嵌入代码块时,您还应该阅读SO: What syntax will check if a variable name containing spaces is defined?,因为您会遇到@987654325 中的右括号问题@
-
感谢您提供该信息
标签: windows batch-file if-statement cmd