Чтобы отделиться и дать ясное понимание, я объясняю сценарий.Представьте, что у вас есть функция с именем MyFunction
в source.ps1
.И вы хотите использовать эту функцию в другом скрипте ( MyCustomScript.ps1 )
Поместите строку в MyCustomScript.ps1, как показано ниже, и вы сможете использовать ее.
. path\of\the\source.ps1
MyFunction
Итак, вы используете функцию, которая присутствует в source.ps1 в вашем собственном скрипте.Принимая во внимание, что &
является оператором вызова в Powershell, который поможет вам вызвать любой внешний исполняемый файл, такой как psexec
и другие.
Вызов команды (напрямую или с оператором вызова) создаст другую область, известную как дочерняя область, и исчезнет после выполнения команды.Если команда изменяет какое-либо из значений в глобальной переменной, то в этом случае изменения будут потеряны и по окончании области действия.
Чтобы избежать этого недостатка и сохранить любые изменения, внесенные в глобальные переменные, вы можетеdot
сценарий, который всегда будет выполнять сценарий в вашей текущей области.
Точечный источник будет запускать функцию или сценарий только в пределах текущей области и оператора вызова (&
), который будет запускать функцию или сценарийпо-прежнему;но это никогда не добавит к текущей области видимости.
Надеюсь, это даст представление о том, когда что использовать.