我的目标是在x64计算机上将%pf%变量设置为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\”—而不是x64计算机上的“c:\ programfiles(x86)\ msbuild\”)。
那有可能吗?
最佳答案
使用以下语法:
SET "PF=%ProgramFiles(x86)%\MSBuild\"
注意引号的位置。