批处理文件 – 从批处理文件内部重定向stdout和stderr

有没有办法从其内部重定向stdout和stderr的批处理文件.

我想像的是像

set STDOUT=stdout.log
echo Some text
a.exe
b.exe
c.exe

哪里有一些文本和a.exe的输出,b.exe和c.exe将转到stdout.log

这可能吗?

对于整个命令集合重定向一次,而不是重定向(附加)每个命令更有效.重新定向需要时间.对于一些重定向的命令可能不太明显,但是如果在具有多次迭代的循环中完成,则可能变得相当重要.

一种方法是将整个重定向命令块括在括号内,并将其重定向到括号外

>stdout.log 2>&1 (
  echo Some text
  a.exe
  b.exe
  c.exe
)

另一个选择是将你的命令放在一个子程序中并重定向CALL

call :redirect >stdout.log 2>&1
exit /b

:redirect
echo Some text
a.exe
b.exe
c.exe
exit /b
相关文章
相关标签/搜索