根据batch file中的IF ELSE条件设置variables的不同值

我的目标是在x64机器上将%PF%variables设置为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 \”

那么这是possibe?

使用这个语法:

 SET "PF=%ProgramFiles(x86)%\MSBuild\" 

请注意报价的位置。