[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[系统相关] 用%processor_architecture%来判断64位系统和32位系统是不准确的

%processor_architecture%变量根本不能用来判断是32位系统还是64位系统。我不知道那个问题回答这个变量的是复制别人的还是经过自己测试过的。

以下是我的测试结果。

当%processor_architecture%变量在64位系统中在32位的CMD下显示的是x86,在64位CMD下显示的是???64,我还测试了BAT转换成EXE后显示的结果,由于转换后的EXE程序是32位的,所以%processor_architecture%变量的结果是x86。所以%processor_architecture%不能当作来判断32位系统还是64位系统的。
  1. rem 测试用%PROCESSOR_IDENTIFIER%结果并不能作为判断32位系统的64位系统的依据
  2. echo PROCESSOR_IDENTIFIER=%PROCESSOR_IDENTIFIER%
  3. echo PROCESSOR_ARCHITECTURE=%PROCESSOR_ARCHITECTURE%
  4. pause
复制代码
以下代码可以正确判断是32位系统和64位系统
xp、win7 32/64、win8.1 32/64测试通过。
  1. rem 判断64位系统和32位系统
  2. if /i %PROCESSOR_IDENTIFIER:~0,3%==x86 (
  3. echo 32位操作系统
  4. ) else (
  5. echo 64位操作系统
  6. )
  7. pause
复制代码

我的电脑上得到的结果是这样的:

C:\>echo %PROCESSOR_IDENTIFIER:~0,3%
Int

C:\>echo %PROCESSOR_I ...
Batcher 发表于 2014-7-7 23:13



    echo %PROCESSOR_IDENTIFIER:~0,3%
这句只判断了是否等于"x86"如果非"x86"就认为是64位的,我想这样应该是可以的,至少 目前我测试的这几个系统 都是可以的

TOP

回复 5# Batcher


    xp、win7 32/64、win8 32/64测试通过。

%PROCESSOR_ARCHITEW6432%此变量只出现在64位系统中32位的CMD中有显示,64位CMD中没有显示这个变量,32位系统中也没有显示这个变量。

TOP

相比 变量  PROCESSOR_IDENTIFIER 的判断 变量 processor_architecture 的判断还是繁琐点
下面代码网友测试 ...
terse 发表于 2014-7-8 18:28



     可用

TOP

返回列表