PowerShell Tee-object 命令在 git pull 上不起作用

PowerShell Tee-object 命令在 git pull 上不起作用

以下 powershell 命令按预期工作:

get-process | tee-object -filepath C:\Test1\testfile2.txt

但如果我将其改为:

git pull | tee-object -filepath C:\Test1\testfile2.txt

我看到 git pull 命令正常执行,但 C:\Test1\testfile2.txt 仍然有来自 get-process 的输出。

知道为什么吗?

答案1

  • 在 cmd.exe 中有两个输出流,stdoutput 和 stderroroutput,编号分别为 1 和 2。
  • >如果没有手动提供不同的流号,则批处理/控制台会在重定向前添加 1 。
  • 看起来 git 输出到 stderroroutput,所以 2>&1 将 stderroroutput(2) 与 stdoutput(1) 合并,以便它通过管道传输,并且 tee 能够回显并存储到文件中。
  • 在 powershell 中还有其他流,请参阅powershell 流

相关内容