FIND $0=%&bX64%, |
ge 发表于 2020-7-17 08:40 我想用INI配置文件来实现,最好不要调用批处理哦, 还是谢谢你的热心帮助,哈哈 |
IF /I "%PROCESSOR_ARCHITECTURE%"=="AMD64" GOTO :X64 IF /I "%PROCESSOR_ARCHITECTURE%"=="X86" GOTO :X86 这个呢? |
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=403644&extra= 看我的帖子,通过2个变量综合判断, 存在变量 programw6432 说明是64位系统,通过 %PROCESSOR_ARCHITECTURE% 变量判断程序是32还是64 |
18588452015 发表于 2020-7-14 16:59 IFEX $%&bX64%=0,MESS 是32位(X86)系统@提示: #OK! MESS 是64位系统@提示: #OK |
红毛樱木 发表于 2020-7-14 16:33 感谢红毛大师了, 你这方法我试过,一样不行的,问题就是我在64位系统中用的32位的pecmd程序了,所以读取的变量不是AMD64。 |
18588452015 发表于 2020-7-14 16:18 感谢大师了,按照你说的方法 用64位的PECMD就能够正常读取系统地方位数了, 相当的感谢,大谢。帮助解决了困扰我很久的问题了。 |
liuzhaoyzz 发表于 2020-7-14 16:10 感谢大师,让我明白了“知其然并知其所以然”, 我的疑问得到了超级版主的解惑,有点让我受宠若惊啊 |
FIND $%PROCESSOR_ARCHITECTURE%=AMD64,MESS 是64位系统@提示: #OK!MESS 是32位(X86)系统@提示: #OK |
caocaofff 发表于 2020-7-14 16:10 谢谢了先,我试试看。 |
因为你运行的是32位的PECMD,所以它拿到的值也是32的,你可以用&bX64判断,3=PECMD64 1=WIN64 0=WIN32 |
本帖最后由 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 |
Powered by Discuz! X3.3
© 2001-2017 Comsenz Inc.