PowerShell может вызывать командные файлы командной строки. Вывод скрипта PowerShell можно записать с помощью команды «tee». Но команда tee не записывает вывод командных файлов в сценарий PowerShell для меня в PowerShell 1.
Попробуйте этот урезанный пример:
Создать пакетный файл с именем test.bat с содержанием
@echo hello from bat
Запустите его из PowerShell:
PS C:\> .\test.bat | tee out.txt
Это работает - у вас будет выходной файл, содержащий
hello from bat
Теперь создайте сценарий PowerShell с именем test.ps1 , который упаковывает командный файл, содержащий
write-output "hello from PS"
.\test.bat
Теперь запустите это с тройником:
.\test.ps1 | tee pout.txt
Это не записывает выходные данные пакетных файлов - выходной файл содержит только
hello from PS
В то время как я ожидал
hello from PS
hello from bat
Но пакетный вывод не захватывается. Как я могу получить выходные данные этого скрипта PowerShell и подчиненных пакетных файлов?