无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 7702|回复: 10
打印 上一主题 下一主题

[求助] 请问辨识当前的PE是32位还是64位的系统的批处理命令该怎么写?

[复制链接]
跳转到指定楼层
1#
发表于 2017-12-23 18:14:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
        现在需要这样的一条批处理命令:

        假如当前的PE的系统是32位的,就执行A.bat;如果当前的PE的系统是64位的,就执行B.bat。

        这样的一条批处理命令该如何写?谢谢!!!
2#
发表于 2017-12-23 18:32:22 | 只看该作者
一般用以下批处理判断,但03pe没有变量%PROCESSOR_IDENTIFIER%,以下无效。

if /i "%PROCESSOR_IDENTIFIER:~0,3%" == "x86" (
   call a.bat
)
if /i "%PROCESSOR_IDENTIFIER:~5,2%" == "64" (
   call b.bat
)

点评

经测试这条批处理命令在微PE V1.2版和微PE V2.0版上都不能够执行,不知问题出在哪儿了, 谢谢你的热心答复。  详情 回复 发表于 2017-12-23 19:06
回复

使用道具 举报

3#
发表于 2017-12-23 18:39:10 | 只看该作者
也可以用 PROCESSOR_ARCHITECTURE 这个环境变量,用2楼的方法。
回复

使用道具 举报

4#
 楼主| 发表于 2017-12-23 19:06:23 | 只看该作者
807979023 发表于 2017-12-23 18:32
一般用以下批处理判断,但03pe没有变量%PROCESSOR_IDENTIFIER%,以下无效。

if /i "%PROCESSOR_IDENTIFI ...

        经测试这条批处理命令在微PE  V1.2版和微PE  V2.0版上都不能够执行,不知问题出在哪儿了,

谢谢你的热心答复。

点评

2楼的方法我这里除03pe外是能运行的。 5楼8楼的方法更好: @if /i not "%processor_architecture%"=="amd64" (call a.bat) else call b.bat @if not exist "%windir%\syswow64" (call a.bat) else call b.b  详情 回复 发表于 2017-12-24 15:46
回复

使用道具 举报

5#
发表于 2017-12-23 19:44:07 | 只看该作者
本帖最后由 nttwqz 于 2017-12-23 19:45 编辑

方法一:
  1. @if not exist "%programw6432%" (call a.bat) else call b.bat
复制代码


方法二:
  1. @if not exist "%windir%\syswow64\" (call a.bat) else call b.bat
复制代码


方法三:
  1. @if defined processor_architew6432 (
  2.         if /i not "%processor_architew6432%"=="amd64" (call a.bat) else call b.bat
  3. ) else (
  4.         if /i not "%processor_architecture%"=="amd64" (call a.bat) else call b.bat
  5. )
复制代码

点评

@if not exist "%programw6432%" (call a.bat) else call b.bat 这条批处理命令经在PE中验证切实可行,谢谢!!!  详情 回复 发表于 2017-12-25 11:04

评分

参与人数 1无忧币 +5 收起 理由
有阴也有阳 + 5 谢谢!!!

查看全部评分

回复

使用道具 举报

6#
发表于 2017-12-23 21:33:28 | 只看该作者
回复

使用道具 举报

7#
发表于 2017-12-23 21:55:55 | 只看该作者
  1. echo.%PROCESSOR_ARCHITECTURE%|find "64">nul && call B.bat || call A.bat
复制代码

试试这个,从变量%PROCESSOR_ARCHITECTURE%搜索字符“64”,成功则运行 B.bat ,失败则运行 A.bat

评分

参与人数 1无忧币 +5 收起 理由
有阴也有阳 + 5 谢谢!!!

查看全部评分

回复

使用道具 举报

8#
发表于 2017-12-24 11:40:24 | 只看该作者
本帖最后由 tools241 于 2017-12-24 11:48 编辑

法一.
if not "%ProgramFiles(x86)%"=="%SystemDrive%\Program Files (x86)" CALL A.BAT
if       "%ProgramFiles(x86)%"=="%SystemDrive%\Program Files (x86)" CALL B.BAT


法二.
if not exist "%SystemRoot%\SysWow64" CALL A.BAT
if       exist "%SystemRoot%\SysWow64" CALL B.BAT

评分

参与人数 1无忧币 +5 收起 理由
有阴也有阳 + 5 谢谢!!!

查看全部评分

回复

使用道具 举报

9#
发表于 2017-12-24 15:46:44 | 只看该作者
有阴也有阳 发表于 2017-12-23 19:06
经测试这条批处理命令在微PE  V1.2版和微PE  V2.0版上都不能够执行,不知问题出在哪儿了,

谢 ...

2楼的方法我这里除03pe外是能运行的。

5楼8楼的方法更好:

@if /i not "%processor_architecture%"=="amd64" (call a.bat) else call b.bat

@if not exist "%windir%\syswow64" (call a.bat) else call b.bat

评分

参与人数 1无忧币 +5 收起 理由
有阴也有阳 + 5 谢谢!!!

查看全部评分

回复

使用道具 举报

10#
发表于 2017-12-24 20:44:58 | 只看该作者
本帖最后由 quya 于 2017-12-25 12:14 编辑

if defined %ProgramFiles(x86)% echo "这是64位系统" else echo "这是32位系统"

写错了, 应该是

  1. if defined ProgramFiles(x86) (echo 这是64位系统) else (echo 这是32位系统)
复制代码


评分

参与人数 1无忧币 +5 收起 理由
有阴也有阳 + 5 谢谢!!!

查看全部评分

回复

使用道具 举报

11#
 楼主| 发表于 2017-12-25 11:04:33 | 只看该作者

@if not exist "%programw6432%" (call a.bat) else call b.bat

这条批处理命令经在PE中验证切实可行,谢谢!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-30 19:04

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表