쓰기-호스트와 쓰기-출력의 PowerShell 차이점은 무엇입니까?
PowerShell에서 쓰기-호스트와 쓰기-출력의 차이점은 무엇입니까?
마치...
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
쓰기-출력은 출력을 파이프라인으로 보냅니다.여기서 다른 cmdlet으로 파이프를 연결하거나 변수에 할당할 수 있습니다.쓰기 호스트는 이를 콘솔로 직접 보냅니다.
$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에 출력을 변수에 할당하거나 다른 명령에 파이프를 연결하여 파이프라인에 대한 작업을 지시하지 않으면 출력이 out-default(일반적으로 콘솔)로 전송되므로 최종 결과는 동일하게 나타납니다.
Write-Output는 데이터를 파이프라인을 통해 개체로 보냅니다.질문 예제에서는 문자열만 전달합니다.
Write-Host호스트에 종속됩니다.콘솔에서Write-Host본질적으로 하는 것입니다.[console]::WriteLine자세한 내용은 이 항목을 참조하십시오.
쓰기-호스트와 쓰기-출력의 또 다른 차이점:
Write-Host는 메시지를 화면에 표시하지만 로그에 쓰지 않습니다.
Write-Output은 로그에 메시지를 기록하지만 화면에 메시지를 표시하지 않습니다.
쓰기 호스트는 유해한 것으로 간주됩니다.유해한 것으로 간주되는 쓰기 호스트에서 자세한 설명을 볼 수 있습니다.
한 가지 더.Write-Host대Write-Output인라인 문자열 연결이 예상대로 작동하지 않을 수 있습니다.
$sampleText = "World"
Write-Host "Hello" $sampleText
돌아온다
Hello World
그렇지만
$sampleText = "World"
Write-Output "Hello" $sampleText
돌아온다
Hello
World
이것은 격려가 될 것입니다.Write-Output변수(및 연결 사용)를 사용하여 전체 문자열을 한 번에 고정할 수 있습니다.
$hw = "Hello " + $sampleText
Write-Output $hw
아래 예제를 사용하여 두 cmds의 차이를 이해할 수 있습니다.
Write-host "msgtxt" | Get-Service
위에서 실행하면 "msgtxt"로 출력됩니다.
Write-output "msgtxt" | Get-Service
위에서 실행하면 msgtxt가 서비스의 이름이 아니므로 오류가 표시됩니다. (이상적인 상태) (파이프라인에 쓰고 Get-Service에 입력으로 전달되기 때문입니다.)
언급URL : https://stackoverflow.com/questions/19754069/powershell-difference-between-write-host-and-write-output
'programing' 카테고리의 다른 글
| "*ngIf If"를 사용하려면 어떻게 해야 합니까? (0) | 2023.05.25 |
|---|---|
| 목표-C에서 클래스에 대한 개인 메서드를 정의하는 가장 좋은 방법 (0) | 2023.05.25 |
| 장고에서 시간대를 설정하는 방법 (0) | 2023.05.25 |
| 관찰 가능한 배열의 길이를 확인하는 방법 (0) | 2023.05.25 |
| '시스템' 유형의 예외입니다.메모리 부족'예외'가 던져졌습니다. (0) | 2023.05.25 |