Batch file 为什么;“回声关闭”;是印刷的吗?

Batch file 为什么;“回声关闭”;是印刷的吗?,batch-file,command-line,Batch File,Command Line,运行以下代码后,我希望只收到一个输出“没有用户存在*”: FOR /F "tokens=* delims= " %%A IN ('C:\windows\System32\query.exe user /server:<some_IP_address>') DO SET NumDoc1=%%A echo %NumDoc1% 如何从输出中消除“回声关闭” 谢谢您正在echo读取当前echo状态,因为您的变量为空 请尝试以下方法: echo NumDoc1:%NumDoc1%当找不到用户

运行以下代码后,我希望只收到一个输出“没有用户存在*”:

FOR /F "tokens=* delims= " %%A IN ('C:\windows\System32\query.exe user /server:<some_IP_address>') DO SET NumDoc1=%%A
echo %NumDoc1%
如何从输出中消除“回声关闭”


谢谢

您正在
echo
读取当前
echo
状态,因为您的变量为空

请尝试以下方法:


echo NumDoc1:%NumDoc1%

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

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

必须表示您的环境变量为空。为什么您要求所有令牌,但在空格上进行分隔?我尝试了您的方法,现在它只显示了这样一个结果:没有用户存在于*NumDoc1:这是预期的结果。这是因为NumDoc1不包含任何值。我知道回声已关闭。状态消息不再出现?@JerryH,请阅读
for /f "delims=" %%G IN ('"query user /server:servername 2>&1"') do set NumDoc1=%%G