특정 사용 사례는 다음과 같습니다PowerShell cmdlet 출력의 속성을 다른 cmdlet의 입력으로 파이프하는 방법은 무엇입니까?
???
첫 번째 cmdlet의 출력의
OwningProcess
재산입니다
Get-NetTCPConnection -State Listen -LocalPort 6005 |
Get-Process -PID ???
.
특정 사용 사례는 다음과 같습니다PowerShell cmdlet 출력의 속성을 다른 cmdlet의 입력으로 파이프하는 방법은 무엇입니까?
???
첫 번째 cmdlet의 출력의
OwningProcess
재산입니다
Get-NetTCPConnection -State Listen -LocalPort 6005 |
Get-Process -PID ???
.
-Id
매개 변수는 속성 이름별로 파이프 라인 입력을 허용하므로 PID가 들어있는 적절한 이름으로 다른 속성을 추가해야합니다. 가능한 한 직접 경로를 사용합니다.
Get-NetTCPConnection | ForEach-Object { Get-Process -Id $_.OwningProcess }
몇 가지 방법이 있습니다. 변수가 속성에 의해 일치 될 수없는 경우 Joey's answer과 같은 ForEach-Object
루프를 사용하거나 미친 짓을하고 싶다면 필요에 맞게 파이프 라인 객체를 조정할 수 있습니다. Get-Process
이후
Get-NetTCPConnection -State Listen -LocalPort 6005 |
Select-Object @{Name="PID";E={$_.OwningProcess}} |
Get-Process
우리가 그냥 원하는 것을를 제공하기 위해 계산 된 속성을 사용하여 파이프 라인 변수 속성 PID에 맞게 찾고 있습니다.
이 경우 ForEach-Object
을 사용하면 훨씬 간단합니다. 다른 방법이 있다는 것을 당신이 알기를 바랍니다.
내가 볼 수있는 몇 가지 옵션이 있습니다. 첫째, 및 간단한, 당신이 ForEach-Object
루프 파이프를 할 수있는, 그리고 그에서 Get-Process
실행 : 당신이 Get-Help Get-Process -PArameter Id
를 실행하는 경우 또는 당신은 ID 매개 변수는 속성 이름으로 파이프 라인의 값을 받아 볼 수 있습니다
Get-NetTCPConnection -State Listen -LocalPort 6005 |
ForEach-Object {
Get-Process -PID $_.OwningProcess
}
을, 당신 때문에 해당 속성을 만들면 Get-Process
에 직접 연결하면됩니다.
Get-NetTCPConnection -State Listen -LocalPort 6005 |
Select @{l='Id';e={$_.OwningProcess}} |
Get-Process