我有一个简单的健康检查脚本,用于检查下面列出的Windows共享驱动器的状态。为什么我的批处理文件没有错误输出从STDERR重定向到文件?
我得到所需的输出命令的工作时。但是,当出现错误时,我不会在输出文件中获得输出。我曾将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的输出 –