PowerShell을 사용하여 실행 파일에 대한 파이프라인 입력

PowerShell을 사용하여 실행 파일에 대한 파이프라인 입력

PowerShell에서 다음 명령을 실행해야 합니다.

%windir%\system32\inetsrv\appcmd add site /in < c:\mywebsite.xml

나는 이것을 이렇게하려고 노력하고 있습니다 :

$appCmd = "$Env:SystemRoot\system32\inetsrv\appcmd.exe"      

[String] $targetFilePath = $restoreFromDirectory + "config.xml"

$AllArgs = @('add', 'site', '/in')

& $appCmd $AllArgs | Get-Content $targetFilePath

그러나 이것은 나에게 오류를 주기 때문에 분명히 잘못된 것입니다.

명령이 파이프라인 입력을 사용하지 않거나 입력 및 해당 속성이 파이프라인 입력을 사용하는 매개 변수와 일치하지 않기 때문에 입력 개체를 명령의 매개 변수에 바인딩할 수 없습니다.

위에서 언급한 PowerShell의 스크립트에 대한 올바른 대안이 무엇인지 도와주세요.

답변1

PowerShell 파이프는 왼쪽에서 입력을 받아 오른쪽 명령에 전달합니다. 이 경우 명령의 출력을 Get-Content입력 매개변수를 사용하지 않는 에 전달합니다.

입력이 왼쪽에서 오른쪽으로 흐르도록 호출 라인을 변경합니다.

Get-Content $targetFilePath | & $appCmd $AllArgs

이것 좀 봐StackOverflow에 대한 답변예를 들어.

관련 정보