|
本帖最后由 liuzhaoyzz 于 2020-7-14 16:11 编辑
%PROCESSOR_ARCHITECTURE%这个变量误导了很多人,其实这个变量返回值指的是当前命令解释器调用的是c:\windows\system32\cmd.exe还是c:\windows\syswow64\cmd.exe,对于64位windows系统,如果调用的c:\windows\system32\cmd.exe→%PROCESSOR_ARCHITECTURE%就是amd64;如果调用的是c:\windows\syswow64\cmd.exe→%PROCESSOR_ARCHITECTURE%=x86。
很多时候,我们要取得的不是这个值,而是要取得的操作系统的位数,就好像你截图里面的64位。
在批处理中,应该用这个变量来判断:%PROCESSOR_IDENTIFIER:~0,3%,如果是x86,肯定是32位;如果不是x86,肯定是64位操作系统。
pecmd应该也可以用类似的办法,就是截取%PROCESSOR_IDENTIFIER%环境变量的前三个字符来判断是比较准确的。
@echo off
rem 判断64位系统和32位系统
echo %PROCESSOR_IDENTIFIER%
if /i %PROCESSOR_IDENTIFIER:~0,3%==x86 (
echo 32位操作系统
) else (
echo 64位操作系统
)
pause
|
|