Вызов функции powershell с параметром из файла .cmd или .bat - PullRequest
9 голосов
/ 14 сентября 2010

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

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

Ответы [ 2 ]

12 голосов
/ 15 сентября 2010

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

Тестовый сценарий Test-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.

1 голос
/ 14 сентября 2010

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...