PowerShell Stdout / Stderr во время выполнения (.foreach {}) - PullRequest
0 голосов
/ 18 октября 2019

Как получить stdout / stderr напрямую при выполнении команд сценария powershell, вызывающих команды?

пример:

$choco="C:\ProgramData\chocolatey\bin\choco.exe"
$chocoPackages = @('googlechrome','firefox','selenium-chrome-driver','selenium-gecko-driver')
$chocoPackages.foreach{ & "$choco" install $_ --yes --force 2>&1 }

Но я не получаю никакого вывода, пока весь массив не будет завершен /не удалось.

Ответы [ 2 ]

2 голосов
/ 18 октября 2019

Похоже, что так .foreach {} работает. Попробуйте foreach () {} или foreach-object {}

(1..5).foreach{$_;sleep 1}
1 голос
/ 18 октября 2019

Рассматривали ли вы Start-Process ?

Start-Process -FilePath "C:\ProgramData\chocolatey\bin\choco.exe" `
              -ArgumentList "install", $_, "--yes --force" `
              -RedirectStandardError .\InstallError.log -RedirectStandardOutput .\InstallOutput.log
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...