1

Следующая команда 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 ответ1

2
  • В cmd.exe есть два выходных потока: stdoutput и stderroroutput с номерами 1 и 2.
  • Пакет / консоль добавляет 1 к перенаправлению > если не указан другой номер потока вручную.
  • Похоже, что git выводит в stderroroutput, поэтому 2> & 1 объединяет stderroroutput(2) с stdoutput(1), поэтому он передается по каналу, и он может отображать и сохранять в файл.
  • В powershell есть дополнительные потоки, смотрите потоки powershell

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .