【发布时间】:2014-07-13 23:39:00
【问题描述】:
我在 for 循环中使用 wmi 时遇到问题。我只是想获取操作系统版本的第一个数字来区分 XP (5) 和 Win7 (6)。
以下内容本身可以很好地查询单台机器。
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
我假设这是我的 skip/tokens/delims 的问题,但我不确定如何找出它到底哪里出了问题。我尝试过的任何变体仍然会导致空白行。
【问题讨论】:
标签: batch-file for-loop wmic