PowerShell에서 Write-Host 와 Write-Output 의 차이점은 무엇입니까 ?
처럼...
Write-Host "Hello World ";
Write-Output "Hello World";
PowerShell에서 Write-Host 와 Write-Output 의 차이점은 무엇입니까 ?
처럼...
Write-Host "Hello World ";
Write-Output "Hello World";
답변:
간단히 말해 Write-Host
콘솔 자체에 씁니다. VBScript 의 MsgBox로 생각하십시오 . Write-Output
반면에는 파이프 라인에 쓰기 때문에 다음 명령은이를 입력으로 받아 들일 수 있습니다. 암시 적으로 호출 된 Write-Output
것처럼 객체를 작성하기 위해 사용할 필요는 없습니다 Write-Output
.
PS> Get-Service
다음과 같습니다.
PS> Get-Service | Write-Output
Write-Output은 출력을 파이프 라인으로 보냅니다. 여기에서 다른 cmdlet으로 파이프되거나 변수에 할당 될 수 있습니다. Write-Host는이를 콘솔로 직접 보냅니다.
$a = 'Testing Write-OutPut' | Write-Output
$b = 'Testing Write-Host' | Write-Host
Get-Variable a,b
출력 :
Testing Write-Host
Name Value
---- -----
a Testing Write-OutPut
b
Powershell에 출력을 변수에 할당하거나 anoher 명령에 파이핑하여 파이프 라인에 대한 출력으로 수행 할 작업을 지시하지 않으면 일반적으로 콘솔 인 out-default로 전송되어 최종 결과가 동일하게 표시됩니다. .
Write-Host와 Write-Output의 또 다른 차이점 :
Write-Host는 화면에 메시지를 표시하지만 로그에는 기록하지 않습니다.
Write-Output은 로그에 메시지를 기록하지만 화면에는 표시하지 않습니다.
그리고 Write-Host는 유해한 것으로 간주됩니다. Write-Host Thoughmful 에서 자세한 설명을 볼 수 있습니다 .
Write-Output
스크립트를 직접 실행하는 경우 화면에 메시지를 표시 한다고 생각 합니다. 그래서 "Write-Output이 로그에 메시지를 기록하지만 화면에 표시하지 않습니다."라는 의미가 무엇인지 잘 모르겠습니다. ?