Значение заявления Powershell - PullRequest
0 голосов
/ 12 февраля 2019

Я совершенно новичок в Powershell и пытаюсь понять, что делает этот фрагмент кода:

$OwnFunctionsDir = "$env:USERPROFILE\Documents\WindowsPowerShell\Functions"
Write-Host "Loading own PowerShell functions from:" -ForegroundColor Green
Write-Host "$OwnFunctionsDir" -ForegroundColor Yellow
Get-ChildItem "$OwnFunctionsDir\*.ps1" | %{.$_}
Write-Host ''

В частности, я не могу интерпретировать, что делает строка Get-Children ….Этот код предназначен для добавления в ваш профиль Powershell для загрузки часто используемых функций при запуске Powershell.

1 Ответ

0 голосов
/ 12 февраля 2019

Краткий ответ

Эта команда загружает содержимое всех файлов ".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 загружает содержимое файла в ваш рабочий сеанс.Таким образом, любые переменные или функции в файле загружаются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...