Windows 根据批处理文件中的IF-ELSE条件设置不同的变量值
我的目标是在x64机器上将%PF%变量设置为C:\ProgramFiles(x86)\MSBuild\并在x86机器上设置为C:\ProgramFiles\MSBuild\。 我可以很容易地做到这一点Windows 根据批处理文件中的IF-ELSE条件设置不同的变量值,windows,batch-file,if-statement,cmd,Windows,Batch File,If Statement,Cmd,我的目标是在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\
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\)
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\)
IF DEFINED ProgramFiles(x86) (SET PF="%ProgramFiles(x86)%\MSBuild\") ELSE (SET "PF=%ProgramFiles%\MSBuild\")
运行时没有错误
但是结果值不是我所需要的(%ProgramFiles(x86)%\MSBuild\“-而不是“C:\ProgramFiles(x86)\MSBuild\”,例如在x64机器上)
那有可能吗?使用以下语法:
SET "PF=%ProgramFiles(x86)%\MSBuild\"
注意引号的位置。目前,您可以用Stephan的答案来解决您的问题,但是当您将代码嵌入到代码块中时,您也应该阅读,因为您将在
if defined ProgramFiles(x86)
Thx中遇到有关该信息的右括号问题