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

[系统相关] [已解决]批处理如何系统位数x86及x64(32/64)?

本帖最后由 pcl_test 于 2017-3-29 10:48 编辑

請教論壇上的批處理前輩大哥

在 WINXP 及 WIN7 的環境裡批處理如何判斷系統位元 x86及x64 ,
懇請不吝指教,謝謝!!

wmic os get OSArchitecture
1

评分人数

TOP

%PROCESSOR_ARCHITECTURE%
1

评分人数

寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

楼上真简洁...我都忘了环境变量中有这个玩意

TOP

64位系统WINDOWS文件夹下有SysWOW64文件夹  32位的没有

也可以用SYSTEMINFO判断

方法很多

TOP

感謝樓上幾位前輩的回覆:
不知用此代碼判斷是否正確,小弟試過WINXP x86 可行,
目前手邊沒有x64的環境可測試!!
  1. @echo off
  2. cls
  3. echo %processor_architecture% | find "86" >nul && if %errorlevel% equ 0 echo 32 Bit
  4. echo %processor_architecture% | find "64" >nul && if %errorlevel% equ 0 echo 64 Bit
  5. pause >nul
复制代码

TOP

6# dennisle
  1. if /i "%processor_architecture%"=="x86" (echo;32位) else echo;64位
复制代码
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

7# hanyeguxing

非常感謝 hanyeguxing 小弟受教了!!

TOP

刚才对比了一下 64 和 32的操作系统
%PROCESSOR_ARCHITECTURE%   
64的显示
PROCESSOR_ARCHITECTURE=AMD64
32位的
PROCESSOR_ARCHITECTURE=x86

为什么是AMD64而不是X64呢  我这CPU是 I7的
花开不问月,不语笑红尘.

TOP

本帖最后由 hanyeguxing 于 2011-5-11 03:51 编辑

%PROCESSOR_ARCHITECTURE%不是显示多少位的,而是显示返回处理器的芯片体系结构。只是在32位和64位之间区分明显,即32位下一般为x86 。Intel从8086开始,286、386、486、586、P1、P2、P3、P4等都用的同一种CPU架构,统称X86。x86是一个intel通用计算机系列的标准编号缩写,也标识一套通用的计算机指令集合,X与处理器没有任何关系,它是一个对所有*86系统的简单的通配符定义,例如:i386, 586,奔腾(pentium),换句话说即使是16位的也显示x86。
intel的64位架构为IA64,AMD的64位架构为AMD64。
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

回复 4# CrLf


    提醒楼主,%PROCESSOR_ARCHITECTURE%这个环境变量如果用在批处理中,且该批处理被做成自解压包或使用32位的bat转exe工具打包后,再运行判断结果始终是X86。

    如果你有上述情况,还是建议你采取5楼的思路,比较简单保险。

    判断语句如下:
if exist %windir%\SysWOW64 echo 系统是64位
系统是32位

TOP

回复 10# hanyeguxing


  现在Intel也有x86_64架构的CPU了,所以amd64准确的来讲是专指x86_64架构的cpu,无论是amd还是intel。而ia64是专指intel安腾系列架构的cpu
amd64和ia64这两种架构还是有区别的

TOP

返回列表