代码之家  ›  专栏  ›  技术社区  ›  Anthony

PowerShell 1未使用tee捕获批处理文件输出

  •  2
  • Anthony  · 技术社区  · 7 年前

    PowerShell可以调用命令行批处理文件。可以使用“tee”命令记录PowerShell脚本输出。但是tee命令不会在PowerShell1中为我记录PowerShell脚本内批处理文件的输出。

    试试这个简化的例子:

    生成批处理文件,调用 球拍 ,包含内容

    @echo hello from bat
    

    从PowerShell运行:

    PS C:\> .\test.bat | tee out.txt
    

    这是有效的-您将有一个输出文件,其中包含

    hello from bat
    

    现在生成一个名为 PS1 包装批处理文件的

    write-output "hello from PS"
    .\test.bat
    

    现在用一个T恤来跑这个:

     .\test.ps1 | tee pout.txt
    

    这不会记录批处理文件的输出-输出文件仅包含

    hello from PS
    

    但是我想

    hello from PS
    hello from bat
    

    但未捕获批输出。如何捕获此PowerShell脚本和附属批处理文件的输出?

    1 回复  |  直到 16 年前
        1
  •  5
  •   Nathan    16 年前

    编辑:

    它似乎在PowerShell2中工作,但在PowerShell1中不工作。

    不过,我找到了PowerShell1的工作。尝试将test.ps1更改为此

    write-output "hello from PS"
    .\test.bat | write-output
    
    推荐文章