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