Entrada de pipeline para executável com PowerShell

Entrada de pipeline para executável com PowerShell

Preciso executar o seguinte comando no PowerShell:

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

Estou tentando fazer assim:

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

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

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

& $appCmd $AllArgs | Get-Content $targetFilePath

Mas isso aparentemente está errado, pois me dá um erro:

O objeto de entrada não pode ser vinculado a nenhum parâmetro do comando porque o comando não aceita a entrada do pipeline ou a entrada e suas propriedades não correspondem a nenhum dos parâmetros que recebem a entrada do pipeline.

Por favor, ajude sobre qual é a alternativa correta para o script mencionado acima no PowerShell.

Responder1

O pipe do PowerShell recebe a entrada à esquerda e a passa para o comando à direita. Nesse caso, você está passando a saída do seu comando para Get-Content, que não aceita um parâmetro de entrada.

Mude sua linha de chamada para que a entrada flua da esquerda para a direita:

Get-Content $targetFilePath | & $appCmd $AllArgs

Veja issoresposta no StackOverflowPor exemplo.

informação relacionada