首页 > 解决方案 > 为什么会打印“ECHO 已关闭”?

问题描述

运行此代码后,我希望只收到一个输出“NO User exists for *”:

FOR /F "tokens=* delims= " %%A IN ('C:\windows\System32\query.exe user /server:<some_IP_address>') DO SET NumDoc1=%%A
echo %NumDoc1%

但我不断得到:

No User exists for * 
ECHO is off.

如何从输出中消除“ECHO 已关闭”?

谢谢

标签: batch-filecommand-line

解决方案


当没有找到用户时,输出被发送到标准错误。FOR 命令只是捕获标准输出。所以你需要将标准错误重定向到标准输出。

for /f "delims=" %%G IN ('"query user /server:servername 2>&1"') do set NumDoc1=%%G

推荐阅读