次のコマンドを実行しています
@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
donno why!コードを修正してください。出力に必要なのは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>
動作する1つのライナーは次のとおりです。
IF EXIST %windir%\syswow64 ( ECHO 64 ) ELSE ( ECHO 32 )
これを使って:
@echo off
cls
for "tokens=2 delims==- " %%a in ('wmic os get osarchitecture /format:value') do echo %%a
pause >nul