批量redirect输出标准错误到文件和pipe道输出标准输出到文件

我有一个备份脚本,调用SVN转储,输出stderr到一个文件,然后pipe输出到7zip。

我现在不得不将这个系统移植到使用batch file窗口,但我似乎无法访问文件两次在一行像Linux会让我,是否有一个替代语法?

svnadmin dump D:\Repo\example 2>> %logfile% | 7za a new.7z >> %logfile% 

(以上只是一个例子)

在Windows中,如果我尝试这样做,我得到一个错误,该文件已被访问。 我怎样才能确保我从svnadmin,也从7za到我的日志文件都得到错误?

您也可以使用块直接重定向到日志文件。

使用1>>&2将stdout重定向到stderr,然后将两者与括号结合,并将其重定向到单个2>>到日志文件。

 (svnadmin dump D:\Repo\example | 7za a new.7z 1>>&2 ) 2>> %logfile% 

这对我来说是个窍门:

 ( svnadmin dump D:\Repo\example 2>> %logfile% | 7za a new.7z >> %logfile%.tmp ) & copy %logfile%+%logfile%.tmp