我正在运行以下命令,
@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