【发布时间】:2018-02-08 06:27:30
【问题描述】:
我有一个简单的健康检查脚本,用于检查下面列出的 Windows 共享驱动器的状态。
当命令有效时,我得到了所需的输出。但是,当出现错误时,我没有在输出文件中得到输出。我已经将 STDOUT 和 STDERR 视为一种可能的解决方案,但我还不能让它工作。
谁能帮我解决这个代码。
@echo off
echo START > results.txt
for /f %%s in (server_list.txt) do (
echo %%s >> results.txt
for /f "delims=" %%n in ('net use \\%%s') do (
echo %%s - %%n >> results.txt 2> err.txt
)
)
输出文件如下所示。
START
server1
server1 - The command completed successfully.
server2
server2 - The command completed successfully.
但是,err.txt 文件中没有任何内容。我确保在文件server_list.txt 中添加了一些不正确的条目,以获取一些测试错误。错误输出显示在命令行窗口中,而不是打印到err.txt 文件中。
【问题讨论】:
-
echo 不会写入 stderr。 net.exe 可以,但您没有重定向它的输出。您必须重新考虑这一点,考虑重定向 cmd.exe 的输出