无忧启动论坛

标题: 关于is64bit貌似测不准? [打印本页]

作者: chiannet    时间: 2013-6-9 12:39
标题: 关于is64bit貌似测不准?
本帖最后由 chiannet 于 2013-6-10 19:12 编辑

实机测试:
  1. is64bit && set a=sh
  2. echo %a%
复制代码
屏幕上显示
sh


但机器的CPU是865芯片组的478针P4赛扬,显然是32位CPU,
作者: 不点    时间: 2013-6-9 15:26
is64bit 已经被 karyonix 更改。它现在不是返回一个逻辑值,而是返回一个整数,这个整数的 “位 0” 表示 CPU 是否支持 PAE,“位 1” 表示 CPU 是否 64 位的。


作者: chiannet    时间: 2013-6-9 20:14
不点 发表于 2013-6-9 15:26
is64bit 已经被 karyonix 更改。它现在不是返回一个逻辑值,而是返回一个整数,这个整数的 “位 0” 表示 C ...

请大大简单说明一下,改了以后该怎么用?

例如如果x64的CPU,执行A命令,否则执行B命令。
作者: 527104427    时间: 2013-6-9 20:27
猜测一下,是否这样?
  1. is64bit
  2. if "%@retval%"=="1" echo x64 || echo x86
复制代码

作者: chiannet    时间: 2013-6-9 20:53
527104427 发表于 2013-6-9 20:27
猜测一下,是否这样?
  1. is64bit
  2. echo  "%@retval%"
复制代码
在一台奔腾M(x86 32位CPU)的本本上,显示的是1
在一台的AMD athlon 64 X2(x64 CPU)上,显示的是3

难道就是1或者3,是否还有其它值?
作者: 527104427    时间: 2013-6-9 21:09
chiannet 发表于 2013-6-9 20:53
在一台奔腾M(x86 32位CPU)的本本上,显示的是1
在一台的AMD athlon 64 X2(x64 CPU)上,显示的是3

...

那这样就不正确了,在我的X64_IntelCPU上显示的是1,还是等开发者来回答吧
作者: chiannet    时间: 2013-6-9 21:18
本帖最后由 chiannet 于 2013-6-9 21:21 编辑


真是伤脑筋。
作者: 不点    时间: 2013-6-9 23:51
527104427 发表于 2013-6-9 21:09
那这样就不正确了,在我的X64_IntelCPU上显示的是1,还是等开发者来回答吧

你不是在开玩笑吧?用虚拟机来做的吧?
作者: chiannet    时间: 2013-6-10 11:14
不点 发表于 2013-6-9 15:26
is64bit 已经被 karyonix 更改。它现在不是返回一个逻辑值,而是返回一个整数,这个整数的 “位 0” 表示 C ...

揣测

返回00(2) 或01(2),也就是0(10)或1(10),是仅支持X86的CPU;
返回10(2) 或11(2),也就是2(10)或3(10),是可支持X64的CPU;

作者: chenall    时间: 2013-6-10 18:26
用checkrange简单点
checkrange 2:3 is64bit && echo x64 ! echo x86
用位运算方法
is64bit
calc  %@retval% & 2 && echo x64 ! echo x86

作者: chiannet    时间: 2013-6-10 19:06
chenall 发表于 2013-6-10 18:26
用checkrange简单点
checkrange 2:3 is64bit && echo x64 ! echo x86
用位运算方法

受教了。




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3