Краткий ответ
Эта команда загружает содержимое всех файлов ".ps1" из " \ Documents \ WindowsPowerShell \ Functions" в ваш рабочий сеанс.
Длинный ответ
Во-первых, $env:USERPROFILE
- это переменная окружения, соответствующая вашему домашнему каталогу.Так что в моем случае это "c: \ users \ jboyd"
Первый интересный фрагмент кода:
$OwnFunctionsDir = "$env:USERPROFILE\Documents\WindowsPowerShell\Functions"
Это присваивает строку новой переменной с именем OwnFunctionsDir
.Что интересно в этой строке, так это то, что она заключена в двойные кавычки и содержит переменную $env:USERPROFILE
.PowerShell расширяет переменные в строках с двойными кавычками (это не относится к строкам с одинарными кавычками).Так что, если бы это выполнялось на моем компьютере, значение $OwnFunctionsDir
было бы "c: \ users \ jboyd \ Documents \ WindowsPowerShell \ Functions".
Пропуск функций Write-host
(потому что я думаю, что они довольноговорит само за себя):
Get-ChildItem "$OwnFunctionsDir\*.ps1" | %{.$_}
Get-ChildItem
интересно, поскольку его поведение зависит от поставщика PowerShell (не беспокойтесь о том, что это такое), но в этом случае Get-ChildItem
эквивалентноdir
или ls
.$OwnFunctionsDir\*.ps1
- это перечисляемый путь.Используя мой компьютер в качестве примера, это эквивалентно перечислению всех файлов с именами, соответствующими шаблону подстановки "* .ps1" (по существу, все файлы PowerShell) в каталоге "c: \ users \ jboyd \ Documents \ WindowsPowerShell \ Functions".
Символ |
передает результаты команды слева к команде справа.
Символ %
является псевдонимом для команды ForEach-Object
.Левая и правая фигурные скобки - это блок сценариев, это тело команды foreach.Таким образом, каждый элемент из Get-ChildItem
передается в блок сценария.
В блоке сценария команды ForEach-Object
переменная $_
представляет текущий обрабатываемый элемент.В этом случае $_
будет файлом PowerShell с расширением «.ps1».Когда мы вызываем файл PowerShell с точкой перед ним, которая называется точечным источником.Dot Sourcing загружает содержимое файла в ваш рабочий сеанс.Таким образом, любые переменные или функции в файле загружаются.