Я нахожу, что пишу кучу связанных функций, связанных с различными существительными (кластеры, серверы sql, серверы вообще, файлы и т.д.) и помещает каждую из этих групп функций в отдельные файлы (скажем, cluster_utils.ps1, например). Я хочу иметь возможность "импортировать" некоторые из этих библиотек в свой профиль и другие в моем сеансе powershell, если они мне понадобятся. Я написал две функции, которые, кажется, решают проблему, но поскольку я только использовал powershell в течение месяца, я думал, что попрошу посмотреть, есть ли какие-либо существующие сценарии типа "лучшей практики", которые я мог бы использовать вместо этого.
Чтобы использовать эти функции, я использую dot-source (в моем профиле или в моем сеансе)... например,
# to load c:\powershellscripts\cluster_utils.ps1 if it isn't already loaded
. require cluster_utils
Вот функции:
$global:[email protected]{}
function require([string]$filename){
if (!$loaded_scripts[$filename]){
. c:\powershellscripts\$filename.ps1
$loaded_scripts[$filename]=get-date
}
}
function reload($filename){
. c:\powershellscripts\$filename.ps1
$loaded_scripts[$filename]=get-date
}
Любая обратная связь будет полезна.