2010-09-14 2 views
7

Я написал сценарий powershell, который является полной функцией, принимающей параметры (например, имя функции (param) {}), а ниже это вызов функции, при этом параметр.Вызов функции powershell с параметром из .cmd или .bat файла

Я хочу, чтобы эту функцию можно было вызвать в файле .ps1, передав параметр. Как я могу упаковать вызов функции через файл .bat или .cmd? Я использую Powershell v2.0.

Благодаря

ответ

1

Я считаю, что все, что вам нужно сделать, это назвать параметры в вызове сценария, как следующее:

powershell.exe Path\ScripName -Param1 Value1 -Param2 Value2 

Param1 и Param2 фактические имена параметров в сигнатуре функции.

Наслаждайтесь!

+0

Как я могу назвать фактическую функцию? Это вызовет мою функцию? Что делать, если у меня есть функция 1 в том же файле .ps1 с сигнатурой в терминах параметров? – dotnetdev

6

Вы должны использовать так называемый «точечный источник» сценария и команду с несколькими операторами: dot-sourcing скрипта + вызов функции с параметрами.

Тестовый скрипт тест-Function.ps1:

function Test-Me($param1, $param2) 
{ 
"1:$param1, 2:$param2" 
} 

Вызывающий .bat файл:

powershell ". .\Test-Function.ps1; Test-Me -Param1 'Hello world' -Param2 12345" 

powershell ". .\Test-Function.ps1; Test-Me -Param1 \"Hello world\" -Param2 12345" 

Примечания: это не является обязательным требованием, но я бы рекомендовал охватывающую весь текст команды с двойные кавычки ускоряют, если необходимо, внутренние кавычки, используя правила исключения CMD.

Смежные вопросы