use*_*815 1 command if-statement batch-file
我试图找出一个OS是32位还是64位使用批处理文件,然后根据输出运行程序.这是我到目前为止所拥有的
if (systeminfo | findstr = based) == "x64-based PC" run 64-bit Program
else run 32-bit program
Run Code Online (Sandbox Code Playgroud)
我不断得到"|此时出乎意料".我试过使用帽子^而没有括号但我似乎无法通过该错误.是否有我缺少的东西或其他方式来做到这一点.批处理文件和程序将在闪存驱动器上,并在多个Windows PC上使用.systeminfo命令是我所知道的唯一获取我需要的结果的方法,我知道该命令有效,但我需要该程序来查看结果并做出决定.任何想法将不胜感激!提前致谢
不幸的是,您不能systeminfo | findstr = based
在if
语句中包含(可能的)多行输出.
你必须像这样捕获输出:
for /f "tokens=3" %%A in ('systeminfo ^| findstr based') do (
if /i "%%~A"=="x64-based" (
:: Run 64-bit Program
) else (
:: Run 32-bit Program
)
)
Run Code Online (Sandbox Code Playgroud)
但是,我建议只使用PROCESSOR_ARCHITECTURE
.
reg query "HKLM\System\CurrentControlSet\Control\Session Manager\Environment" /v PROCESSOR_ARCHITECTURE
Run Code Online (Sandbox Code Playgroud)
http://support.microsoft.com/kb/556009
归档时间: |
|
查看次数: |
1180 次 |
最近记录: |