如何将STDIN、STDOUT、STDERR重定向到windows批处理脚本中的文件

如何将STDIN、STDOUT、STDERR重定向到windows批处理脚本中的文件,windows,batch-file,Windows,Batch File,我看到了许多示例,其中可以将单个命令的STD in/out/err重定向到文件。因此,我能够创建一个myLogger.bat作为包装器,将myScript的call语句重定向到myLogFile myLogger的示例代码: CALL "%xDir%\%%1" > "%lDir%\%lFil%" 2>&1 从命令行执行>myLogger.bat myscripttobeloged.bat 但是,我无法重定向windows批处理文件(.bat)中所有命令的STD in/out

我看到了许多示例,其中可以将单个命令的STD in/out/err重定向到文件。因此,我能够创建一个myLogger.bat作为包装器,将myScript的call语句重定向到myLogFile

myLogger的示例代码:

CALL "%xDir%\%%1" > "%lDir%\%lFil%" 2>&1
从命令行执行>
myLogger.bat myscripttobeloged.bat

但是,我无法重定向windows批处理文件(.bat)中所有命令的STD in/out/err

批处理脚本的开头是否包含类似于“exec>$logFile 2>&1 in shell”的内容,该脚本将同一脚本的所有日志重定向到一个文件


提前谢谢

大多数情况下,您需要使用
1>(STDOUT)
2>(STDERR)

例如:

dir 1>stout.txt 2>stderr.txt

有关更多详细信息,以及如何使用STDIN进行巧妙的操作,请参阅。

您几乎拥有了它。只需在开始时通过重定向调用例程

@echo off
>test.log 2>&1 call :start %*
exit /b

:start
REM rest of script goes here.

不是真的;脚本是windows批处理文件(.bat)为什么它们必须是批处理的?在这里,您将独立地将STD out/err重定向到两个文件。但是,在本例中,您仅对批处理文件的一个命令执行此操作。