
Мне нужно выполнить следующую команду в 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 pipe принимает ввод слева и передает его в команду справа. В этом случае вы передаете вывод вашей команды в Get-Content
, которая не принимает входной параметр.
Измените линию вызова так, чтобы ввод осуществлялся слева направо:
Get-Content $targetFilePath | & $appCmd $AllArgs
Видеть этоответ на StackOverflowдля примера.