【发布时间】:2016-01-08 19:35:40
【问题描述】:
这里是第一次发帖,如果我做得不对,请见谅。
我正在尝试在远程 Windows PC 上输出操作系统版本,但我不断收到不需要的数据。执行这个批处理文件:
@echo off
set /p hostname=PC hostname?
echo.
FOR /F "skip=1 tokens=*" %%A in ('wmic /node:%hostname% OS get caption') DO echo %%A
echo.
pause
返回这个结果:
Microsoft Windows 7 Professional
Echo is off.
我能够使用skip=1 删除Caption 输出,但我不明白echo 命令的来源。拆分命令没有帮助,但是打开 echo 表明,显然,循环的 wmic 命令在输出操作系统版本后输出echo,所以,很明显,当 echo 关闭时,我得到最终输出:@987654327 @。谁能帮我理解为什么会出现echo 输出?
【问题讨论】:
-
我可以告诉你为什么会这样,但不能告诉你如何阻止它。如果从命令提示符运行 wmic 输出是三行:
Caption、Microsoft Windows 7 Professional和一个空行。空行导致 %%A 在第三次调用DO echo %%A时为空,这导致只执行echo,这导致输出 ECHO 的当前状态(Echo is off i>)。
标签: batch-file echo wmic