如何使用仅具有数字输出的批处理来查找操作系统架构?

如何使用仅具有数字输出的批处理来查找操作系统架构?

我正在运行以下命令,

@echo off
cls
wmic os get osarchitecture > win.txt
for /f "skip=1" %%G IN (win.txt) do echo %%G
pause>nul

我得到的实际输出是,

Echo is off

预期产量,

64

或者

32

取决于用户架构..

win.txt得到了输出,

OSArchitecture  
64-bit     

但是在 cmd 窗口中它显示空白,echo is off不知道为什么!请修复我的代码。我只需要 64 或 32 的输出。

答案1

我只需要 64 或 32 的输出。

使用以下批处理文件(GetBits.cmd):

@echo off
Setlocal EnableDelayedExpansion
rem use findstr to strip blank lines
for /f "usebackq skip=1 tokens=*" %%i in (`wmic OS get OSArchitecture ^| findstr /r /v "^$"`) do (
  set "_bits=%%i"
  rem extract first 2 characters
  set "_bits=!_bits:~0,2!"
  echo !_bits!
  )
endlocal

示例输出:

F:\test>GetBits.cmd
64

F:\test>

进一步阅读

答案2

这是一个有效的方法:

IF EXIST %windir%\syswow64 ( ECHO 64 ) ELSE ( ECHO 32 )

答案3

用这个:

@echo off
cls 
for "tokens=2 delims==- " %%a in ('wmic os get osarchitecture /format:value') do echo %%a 
pause >nul 

相关内容