Я думаю, что в этом случае вам понадобится Запись-Вывод .
Если у вас есть скрипт типа
Write-Output "test1";
Write-Host "test2";
"test3";
затем, если вы вызовете скрипт с перенаправленным выводом, например, yourscript.ps1 > out.txt
, вы получите test2
на экране test1\ntest3\n
в "out.txt".
Обратите внимание, что "test3" и строка Write-Output всегда будут добавлять новую строку к вашему тексту, и в PowerShell нет способа остановить это (то есть echo -n
невозможно в PowerShell с собственными командами). Если вам нужна (несколько базовая и простая в Bash ) функциональность echo -n
, тогда посмотрите ответ samthebest .
Если командный файл запускает команду PowerShell, он, скорее всего, будет захватывать команду записи-вывода. У меня были «долгие дискуссии» с системными администраторами о том, что следует записывать в консоль, а что нет. Теперь мы согласились, что единственная информация, если сценарий успешно выполнен или умер, должна быть Write-Host
'ed, и все, что автор сценария может знать о выполнении (какие элементы были обновлены, какие поля были установлены, и т. Д. и так далее) идет в Write-Output. Таким образом, когда вы отправляете скрипт системному администратору, он может легко runthescript.ps1 >someredirectedoutput.txt
и увидеть на экране, все ли в порядке. Затем отправьте «someredirectedoutput.txt» разработчикам.