请问辨识当前的PE是32位还是64位的系统的批处理命令该怎么写?
现在需要这样的一条批处理命令:假如当前的PE的系统是32位的,就执行A.bat;如果当前的PE的系统是64位的,就执行B.bat。
这样的一条批处理命令该如何写?谢谢!!! 一般用以下批处理判断,但03pe没有变量%PROCESSOR_IDENTIFIER%,以下无效。
if /i "%PROCESSOR_IDENTIFIER:~0,3%" == "x86" (
call a.bat
)
if /i "%PROCESSOR_IDENTIFIER:~5,2%" == "64" (
call b.bat
)
也可以用 PROCESSOR_ARCHITECTURE 这个环境变量,用2楼的方法。 807979023 发表于 2017-12-23 18:32
一般用以下批处理判断,但03pe没有变量%PROCESSOR_IDENTIFIER%,以下无效。
if /i "%PROCESSOR_IDENTIFI ...
经测试这条批处理命令在微PEV1.2版和微PEV2.0版上都不能够执行,不知问题出在哪儿了,
谢谢你的热心答复。 本帖最后由 nttwqz 于 2017-12-23 19:45 编辑
方法一:
@if not exist "%programw6432%" (call a.bat) else call b.bat
方法二:
@if not exist "%windir%\syswow64\\" (call a.bat) else call b.bat
方法三:
@if defined processor_architew6432 (
if /i not "%processor_architew6432%"=="amd64" (call a.bat) else call b.bat
) else (
if /i not "%processor_architecture%"=="amd64" (call a.bat) else call b.bat
)
判断 64/32位 系统&程序 正确导入64/32位DLL 批处理 echo.%PROCESSOR_ARCHITECTURE%|find "64">nul && call B.bat || call A.bat
试试这个,从变量%PROCESSOR_ARCHITECTURE%搜索字符“64”,成功则运行 B.bat ,失败则运行 A.bat 本帖最后由 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
有阴也有阳 发表于 2017-12-23 19:06
经测试这条批处理命令在微PEV1.2版和微PEV2.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
本帖最后由 quya 于 2017-12-25 12:14 编辑
if defined %ProgramFiles(x86)% echo "这是64位系统" else echo "这是32位系统"
写错了, 应该是
if defined ProgramFiles(x86) (echo 这是64位系统) else (echo 这是32位系统)
nttwqz 发表于 2017-12-23 19:44
方法一:
@if not exist "%programw6432%" (call a.bat) else call b.bat
这条批处理命令经在PE中验证切实可行,谢谢!!!
页:
[1]