【发布时间】:2018-01-27 09:04:15
【问题描述】:
我在批处理文件中使用net use 命令来连接远程位置。
我想将它的输出存储到一个变量中并进行处理。
当命令成功完成后,我的代码就可以正常工作了。
但是,如果出现一些错误,例如密码错误,那么我无法将错误输出存储在变量中。它直接打印到运行脚本的控制台窗口。请帮助解决以下问题:
- 为什么会这样?
为什么命令输出出错时无法将输出存储在变量中? - 是否有合适的方法来记录“net use”命令的错误输出?
以下是我的代码:
:connNEWlocation
echo Connecting required remote location...
for /f "tokens=1,2,3,4,5,6,7,8 delims=*" %%a IN ('net use \\!hostaddress!\!user! /user:!user! !user_pass!') DO (
if "%%a"=="The command completed successfully." (
echo Connected successfully^!
) else (
echo ERROR:"%%a"
echo do something based on error obtained here
)
)
【问题讨论】:
-
错误输出到第二个 io 流。要将其与正常输出合并使用
2>&1在 for /f commnad 中,您需要转义2^>^&1
标签: batch-file net-use