【21-11】PowerShell 特殊变量
在 PowerShell 里有很多特殊的环境变量可以使用。我们先来看一下有哪些变量。
$$
:表示会话收到的最后一行中的最后一个标记。
$?
: 表示上一个操作的执行状态。如果上一次操作成功,则包含 TRUE;如果失败,则包含 FALSE。
$^
:表示会话收到的最后一行中的第一个标记。
$_
:与 $PSItem 相同。包含管道对象中的当前对象。你可以在对每个对象或管道中的选定对象执行操作的命令中使用此变量。
$ARGS
:表示传递给函数,脚本或脚本块的未声明参数和/或参数值的数组。
$CONSOLEFILENAME
:表示最近在会话中使用的控制台文件(.psc1)的路径。
$ERROR
:表示表示最新错误的错误对象数组。
$EVENT
:表示 PSEventArgs 对象,该对象表示正在处理的事件。
$EventArgs
:表示一个对象,该对象表示从正在处理的事件的 EventArgs 派生的第一个事件参数。
$EVENTSUBSCRIBER
:表示 PSEventSubscriber 对象,该对象表示正在处理的事件的事件订阅者。
$EXECUTIONCONTEXT
:表示 EngineIntrinsics 对象,该对象表示 PowerShell 主机的执行上下文。
$FALSE
:代表 FALSE。你可以使用此变量在命令和脚本中表示 FALSE,而不是使用字符串 false 。
$FOREACH
:表示 ForEach 循环的枚举器(不是结果值)。你可以在 $ ForEach 变量的值上使用枚举器的属性和方法。
$HOME
:表示用户主目录的完整路径。
$HOST
:表示表示 PowerShell 的当前宿主应用程序的对象。
$INPUT
:表示枚举传递给函数的所有输入的枚举器。
$LASTEXITCODE
:表示已运行的最后一个基于 Windows 的程序的退出代码。
$MATCHES
:$Matches 变量与-match 和-notmatch 运算符一起使用。
$MYINVOCATION
:MyInvocation 仅填充脚本,函数和脚本块。MyInvocation 自动变量的 PSScriptRoot 和 PSCommandPath 属性包含有关调用者或调用脚本的信息,而不是当前脚本。
$NESTEDPROMPTLEVEL
:表示当前提示级别。
$NULL
:$NULL 是一个包含 NULL 或空值的自动变量。你可以使用此变量来表示命令和脚本中缺少或未定义的值。
$PID
:表示承载当前 PowerShell 会话的进程的进程标识符(PID)。
$PROFILE
:表示当前用户和当前主机应用程序的 PowerShell 配置文件的完整路径。
$PSCMDLET
:表示一个对象,该对象表示正在运行的 cmdlet 或高级函数。
$PSCOMMANDPATH
:表示正在运行的脚本的完整路径和文件名。
$PSCULTURE
:表示操作系统中当前使用的区域性的名称。
$PSDEBUGCONTEXT
:在调试时,此变量包含有关调试环境的信息。否则,它包含 NULL 值。
$PSHome
:表示 PowerShell 的安装目录的完整路径。
$PSITEM
:与 $_ 相同。包含管道对象中的当前对象。
$PSSCRIPTROOT
:表示运行脚本的目录。
$PSSENDERINFO
:表示有关启动 PSSession 的用户的信息,包括用户标识和原始计算机的时区。
$PSUICULTURE
:表示当前在操作系统中使用的用户界面(UI)区域性的名称。
$PSVERSIONTABLE
:表示只读哈希表,显示有关当前会话中运行的 PowerShell 版本的详细信息。
$SENDER
:表示生成此事件的对象。
$SHELLID
:表示当前 shell 的标识符。
$STACKTRACE
:表示最近错误的堆栈跟踪。
$THIS
:在定义脚本属性或脚本方法的脚本块中,$This 变量引用正在扩展的对象。
$TRUE
:代表 TRUE。你可以使用此变量在命令和脚本中表示 TRUE。
上边一共有 38 个 变量,可以使随时使用。
版权声明: 本文为 InfoQ 作者【耳东】的原创文章。
原文链接:【http://xie.infoq.cn/article/7f5a02f6d5772cffb23c1a12d】。未经作者许可,禁止转载。
评论