programing

쓰기-호스트와 쓰기-출력의 PowerShell 차이점은 무엇입니까?

jooyons 2023. 5. 25. 21:57
반응형

쓰기-호스트와 쓰기-출력의 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-HostWrite-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

반응형