我在for循環中使用wmi時遇到問題。我只是想抓住操作系統版本的第一個數字來區分XP(5)和Win7(6)。批次wmi for循環
下面的工作可以很好地查詢單個機器。
for /f "tokens=1 delims=." %%a in ('wmic /node:%machine% os get version') do @for /f "tokens=1 delims=." %%b in ("%%a") do @set osver=%%b
echo %osver%
然而,一旦我試圖把它放在一個for循環中,我只得到一個空白%osver%
for /f %%G in (list.txt) do (
for /f "skip=2 tokens=2 delims=.," %%a in ('wmic /node:%%G os get version /format:csv') do @for /f "tokens=1 delims=." %%b in ("%%a") do @set osver=%%b
echo %osver%
) > results.txt
我假設它是有問題,我跳過/標記/但我不確定如何確定它出錯的地方。我嘗試過的任何變體仍然會導致空行。
你如何回覆%% b本身? echo %% b顯示爲%b – user3358058
只有當您使用批處理文件處理時,纔會回顯%% b;如果您正在使用命令行處理單個前面的%,則會回顯%% b .. – mordecai