$MyInvocation
содержит много информации о текущем контексте и о вызывающих. Может быть, это может быть использовано для определения, является ли сценарий точечным источником (т.е. импортируется) или выполняется как сценарий.
Сценарий может действовать как функция: используйте param
в качестве первого необычного / пробела в файле для определенных параметров. Непонятно (нужно попробовать разные комбинации), что произойдет, если вы поставите в точку сценарий, который запускает param
...
Модули могут напрямую выполнять код, а также экспортировать функции, переменные, ... и могут принимать параметры. Возможно, $MyInvocation
в модуле позволит обнаружить два случая.
РЕДАКТИРОВАТЬ: Дополнительно:
$MyInvocation.Line
содержит командную строку, используемую для выполнения текущего скрипта или функции. Его свойство Line
содержит текст сценария, используемый для выполнения, при точечном источнике это будет начинаться с ".
", но не при запуске в качестве сценария (очевидно, это случай использования соответствия регулярному выражению, чтобы учесть переменное пространство вокруг период).
В скрипте, выполняемом как функция