【问题标题】:Batch redirect output stderr to file and piped output stdout to file批量重定向输出标准错误到文件和管道输出标准输出到文件
【发布时间】:2011-04-14 13:04:37
【问题描述】:

我有一个调用 SVN 转储的备份脚本,将 stderr 输出到文件,然后将输出通过管道传输到 7zip。

我现在必须使用批处理文件将此系统移植到 Windows,但我似乎无法在一行中访问该文件两次,就像 linux 允许的那样,是否有替代语法?

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

(以上仅为示例)

在 Windows 中,如果我尝试执行此操作,则会收到文件已被访问的错误消息。如何确保我从 svnadmin 和 7za 到我的日志文件都收到错误?

【问题讨论】:

    标签: windows logging batch-file redirect


    【解决方案1】:

    您还可以使用块将两者直接重定向到日志文件。

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

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

    【讨论】:

      【解决方案2】:

      这对我有用:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-31
        • 2016-04-26
        • 2012-11-04
        • 2017-08-08
        相关资源
        最近更新 更多