PowerShell
Встроенные переменные
Поиск…
Вступление
PowerShell предлагает множество полезных «автоматических» (встроенных) переменных. Некоторые автоматические переменные заполняются только в особых обстоятельствах, а другие доступны по всему миру.
$ PSScriptRoot
Get-ChildItem -Path $PSScriptRoot
В этом примере извлекается список дочерних элементов (каталогов и файлов) из папки, в которой находится файл сценария.
Автоматическая переменная $PSScriptRoot
равна $null
если используется вне файла кода PowerShell. Если он используется внутри сценария PowerShell, он автоматически определяет полный путь файловой системы к каталогу, содержащему файл сценария.
В Windows PowerShell 2.0 эта переменная действительна только в модулях сценариев (.psm1). Начиная с Windows PowerShell 3.0, он действителен во всех сценариях.
$ Args
$Args
Содержит массив необъявленных параметров и / или значений параметров, которые передаются в блок функций, сценариев или сценариев. Когда вы создаете функцию, вы можете объявить параметры с помощью ключевого слова param или добавив список параметров, разделенных запятыми, в круглые скобки после имени функции.
В действии события переменная $ Args содержит объекты, которые представляют аргументы события обрабатываемого события. Эта переменная заполняется только в блоке Action команды регистрации событий. Значение этой переменной также можно найти в свойстве SourceArgs объекта PSEventArgs (System.Management.Automation.PSEventArgs), возвращаемого Get-Event.
$ PSItem
Get-Process | ForEach-Object -Process {
$PSItem.Name
}
То же, что и $_
. Содержит текущий объект в объекте конвейера. Вы можете использовать эту переменную в командах, которые выполняют действие для каждого объекта или для выбранных объектов в конвейере.
$?
Get-Process -Name doesnotexist
Write-Host -Object "Was the last operation successful? $?"
Содержит статус выполнения последней операции. Он содержит TRUE, если последняя операция выполнена успешно, и FALSE, если она не удалась.
$ ошибка
Get-Process -Name doesnotexist
Write-Host -Object ('The last error that occurred was: {0}' -f $error[0].Exception.Message)
Содержит массив объектов ошибок, которые представляют самые последние ошибки. Самая последняя ошибка - первый объект ошибки в массиве ($ Error [0]).
Чтобы предотвратить добавление ошибки в массив $ Error, используйте общий параметр ErrorAction со значением Ignore. Дополнительные сведения см. В разделе about_CommonParameters ( http://go.microsoft.com/fwlink/?LinkID=113216) .