当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] PowerShell 内置变量

作者:精品下载站 日期:2024-12-14 22:05:24 浏览:11 分类:玩电脑

PowerShell 内置变量


PowerShell 具有内置变量,它们是一组可在脚本中使用的预定义变量。这些变量提供对重要信息的访问,例如当前环境设置、系统属性和脚本执行详细信息。

PowerShell 具有自动化变量、常见内置变量、特殊变量和事件变量。

在本文中,我们将讨论 PowerShell 中可用的各种类型的内置变量及其在脚本中的用法。

公共内置变量

PowerShell 中一些常用的内置变量包括:

$或 $PSItem - 表示管道、循环或过滤器中的当前对象

以下脚本使用 $_ 打印当前目录中每个文件的名称。

Get-ChildItem | ForEach-Object { Write-Host $_.Name }

$HOME - 表示用户的主目录位置

以下脚本使用 $HOME 变量将工作目录更改为用户主目录

Set-Location $HOME

$PWD - 代表当前工作目录

以下脚本使用 $PWD 通过 Get-ChildItem cmdlet 获取当前工作目录中的文件列表。

Get-ChildItem $PWD

$NULL - 表示空值。

以下脚本将 null 值分配给变量

$filePath = $NULL

PowerShell 自动变量

自动变量由 PowerShell 创建和管理。它们存储有关当前执行环境的信息。

下面是 PowerShell 中自动变量的列表。

$Args - 包含传递给函数或脚本的参数

以下脚本使用 $Args 打印传递给脚本的参数:

param($arg1, $arg2)
Write-Host "Arguments: $arg1, $arg2"

在上面的 PowerShell 脚本中,$arg1$arg2 是使用 param 语句定义的。 Write-Host cmdlet 用于将这两个参数的值打印到控制台。将脚本保存为 example-script.ps1

使用以下参数运行上述脚本:

.\example-script.ps1 "shell" "admin"

上述 PowerShell 脚本的输出是:

Arguments: shell, admin

$Error - 保存脚本执行期间发生的错误的数组

以下脚本使用 $Error 自动变量来显示当前 PowerShell 会话中发生的错误。

Get-ChildItem -Path 'D:\PS\FRVTemp\'
$Error[-1].Exception.Message

在上面的 PowerShell 脚本中,Get-ChildItem cmdlet 用于从指定的不存在的目录中获取项目,这将生成错误。

$Error 变量用于访问数组中的最后一个错误对象,.Exception.Message 属性用于显示错误消息。

$ExecutionHost - 提供对当前执行上下文的访问

以下脚本使用 $ExecutionHost 来获取会话状态对象信息。

$ExecutionContext.SessionState

$Host - 包含有关当前主机应用程序的信息

以下脚本使用 $HOST 自动变量来获取 PowerShell 主机的当前版本。

$HOST.Version

上述 PowerShell 脚本的输出返回 PowerShell 主机版本:

PS D:\> $HOST.Version

Major  Minor  Build  Revision
-----  -----  -----  --------
5      1      18362  2212


PS D:\>

$Input - 通过管道存储到函数或脚本的输入传递

以下 PowerShell 脚本使用 $Input 脚本来计算通过管道的项目数。

$Input | Measure-Object | Select-Object -ExpandProperty Count

$MyInspiration - 提供有关当前脚本或命令调用的详细信息

以下脚本使用 $MyInvocau 变量来获取当前脚本的名称。

$MyInvocation.MyCommand.Name

$PROFILE - 表示当前用户的配置文件脚本的路径。

以下脚本使用 $PROFILE 变量来访问当前用户的配置文件脚本。

notepad $PROFILE

在上面的 PowerShell 脚本中,$PROFILE 变量获取当前用户的配置文件脚本,Notepad 用于在文本编辑器中打开该脚本。

$PSBoundParameters - 包含传递给脚本或函数的参数字典

以下脚本使用 $PSBoundParameters 打印传递给函数的参数值。

function Example-Function {
    $PSBoundParameters
}

Example-Function -Param1 "Shell" -Param2 "Admin"

上面的 PowerShell 脚本创建了一个函数“Example-Function”。运行脚本并将其保存为 example-script.ps1 文件。

打开 PowerShell 控制台并运行脚本。 $PSBoundParameters 变量将打印参数值。

$PSCommonPath - 存储当前脚本或命令的路径

以下脚本使用 $PSCommandPath 获取当前脚本的路径。

$PSCommandPath

$PSHome - 指安装PowerShell的目录

以下脚本使用 $PSHome 自动变量获取 PowerShell 安装目录路径,并使用 Join-Path cmdlet 和 pwsh.exe 加入该路径

Join-Path $PSHome "pwsh.exe"

$PSScriptRoot - 表示包含当前脚本的目录

以下脚本使用 $PSScriptRoot 自动变量来获取包含当前脚本的目录的路径。

$PSScriptRoot 

酷提示:如何在 PowerShell 中将变量写入文件!

PowerShell 特殊变量

PowerShell 提供了具有特殊常量值的特殊变量。

  • $true - 表示布尔真值。
  • $false - 表示布尔 false 值。
  • $null - 表示空值。

PowerShell 事件变量

PowerShell 提供在处理 PowerShell 事件时使用的事件变量。

  • $Event - 指当前事件对象。
  • $EventArgs - 表示当前事件的事件参数。
  • $Sender - 指引发当前事件的对象。

结论

我希望上面有关 PowerShell 内置变量以及如何在脚本环境中使用它们的文章对您有所帮助。

您可以在 ShellGeek 主页上找到有关 PowerShell Active Directory 命令和 PowerShell 基础知识的更多主题。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯