Предположим, что вы системный администратор, который использует PowerShell для управления множеством функций в своих системах.
Вы, вероятно, написали много функций, которые делают вещи, которые вы должны регулярно проверять. Однако, если вам приходится много передвигаться, много использовать разные машины и т. Д., Вам придется снова и снова вводить все свои функции, чтобы иметь возможность их использовать. Мне даже приходится делать это каждый раз, когда я по какой-то причине выхожу и перезапускаю PowerShell, так как он не запомнит функции ...
Я написал функцию, которая делает это для меня. Я публикую это здесь, потому что хочу быть уверенным, что это надежно. Сама функция хранится в allFunctions.ps1
, поэтому я исключил ее из кода.
Основная идея заключается в том, что у вас есть одна папка, в которой вы храните все свои файлы ps1, каждый из которых содержит функцию. В PowerShell вы переходите в этот каталог и затем вводите:
. .\allFunctions.ps1
Содержимое этого скрипта таково:
[string]$items = Get-ChildItem -Path . -Exclude allFunctions.ps1
$itemlist = $items.split(" ")
foreach($item in $itemlist)
{
. $item
}
Этот скрипт сначала соберет все файлы в вашем каталоге, то есть все файлы, не относящиеся к ps1, которые у вас там тоже могут быть. allFunctions.ps1 будет исключен.
Затем я разделил длинную строку на основе пробела, который здесь является общим разделителем. А затем я запускаю его с помощью цикла Foreach, каждый раз инициализируя функцию в PowerShell.
Предположим, у вас более 100 функций, и вы никогда не знаете, какие из них вам понадобятся, а какие нет? Почему бы не ввести их все вместо придирки?
Так что мне интересно, что здесь может пойти не так? Я хочу, чтобы это было действительно безопасно, так как я, вероятно, буду часто его использовать.