source

로그 파일이 아닌 변수로 출력을 캡처하는 방법은 무엇입니까?

manysource 2023. 8. 28. 21:13

로그 파일이 아닌 변수로 출력을 캡처하는 방법은 무엇입니까?

이렇게 하면 출력이 로그 파일에 기록됩니다.

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

그러나 출력을 문자열 변수로 유지하여 전자 메일 본문에 사용하려면 어떻게 해야 합니까?

저는 이것을 운이 없이 시도했습니다.

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

Write-Host $test

다음 작업을 수행해야 합니다.

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

오류도 리디렉션하려면 다음을 추가합니다.2>&1마침내.

실행 파일의 출력을 캡처하는 것은 다음과 같이 간단합니다.

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

&1 - 출력에 오류 스트림을 포함

PowerShell에서 실행 파일의 반환 형식은 문자열 배열입니다.이러한 출력을 기록하는 경우,

Write-Host $cmdOutput

배열의 문자열을 공백으로 구분된 출력 스트림으로 출력합니다.

한 줄에 한 줄씩 문자열로 인쇄하려면 다음을 선택합니다.

Write-Output $cmdOutput

또는

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

언급URL : https://stackoverflow.com/questions/8423368/how-to-capture-output-in-a-variable-rather-than-a-logfile