Является ли ваш сценарий просто сценарием или содержит функцию?Если это скрипт и он принимает параметры, он будет выглядеть примерно так:
-- top of file foo.ps1 --
param($param1, $param2)
<script here>
Вы вызываете это так же, как и командлет, за исключением того, что если вы работаете с текущим каталогом, вы должны указать путь к скриптунапример, так:
.\foo.ps1 a b
Также обратите внимание, что вы передаете аргументы в пространство скриптов (и функций), разделенных так же, как вы делаете это с помощью командлетов.у вас есть несколько вариантов:
-- top of file foo.ps1 --
function foo ($param1, $param2) {
<script here>
}
Если вы запустите foo.ps1, как описано выше, ничего не произойдет, кроме как вы определите функцию с именем foo во временной области, и эта область исчезнет, когда скриптвыходы.Вы можете добавить строку в конец скрипта, которая на самом деле вызывает функцию foo.Но, возможно, вы намереваетесь использовать этот скрипт скорее как библиотеку функций многократного использования.В этом случае вы, вероятно, захотите load
функции в текущей области.Это можно сделать с помощью оператора точечного источника .
следующим образом:
C:\PS> . .\foo.ps1
C:\PS> foo a b
Теперь функция foo будет определена на глобальном уровне.Обратите внимание, что вы можете сделать то же самое в другом скрипте, который загрузит эту функцию в область действия скрипта.