Мне нужно выполнить следующую команду в 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 ответ1

2

Канал PowerShell принимает данные слева и передает их в команду справа. В этом случае вы передаете вывод вашей команды в Get-Content , который не принимает входной параметр.

Измените свою линию вызова так, чтобы ввод проходил слева направо:

Get-Content $targetFilePath | & $appCmd $AllArgs

Посмотрите этот ответ на StackOverflow для примера.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .