Подтвердить что ты не робот

Как захватить вывод в переменной, а не в файле журнала?

Это записывает вывод в файл журнала:

& $Env:WinDir\system32\inetsrv\appcmd.exe >test.log

Но что, если я хочу сохранить вывод в строковой переменной, чтобы использовать его в теле письма?

Я пробовал это без везения.

$test = ""
& $Env:WinDir\system32\inetsrv\appcmd.exe >$test

Write-Host $test
4b9b3361

Ответ 1

Вам нужно сделать:

$test = & $Env:WinDir\system32\inetsrv\appcmd.exe

Если вы хотите также перенаправить ошибку, добавьте 2>&1 в конец.

Ответ 2

Захват вывода исполняемого файла так же просто, как

$cmdOutput = &"Application.exe" 2>&1

2 > & 1 - Включает поток ошибок в выходном файле

Тип возвращаемого файла в PowerShell - массив строк. В случае регистрации таких выходов

Write-Host $cmdOutput

выводит строки в массиве в выходной поток, разделенный пробелами

Чтобы напечатать их в строке в строке, выберите

Write-Output $cmdOutput

или

$cmdOutput = &"Application.exe" | Out-String
Write-Host $cmdOutput