我的目标是在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\"

注意引号的位置。

10-06 14:37