上一节主要介绍了Powershell中变量的定义和使用,以及在变量中包含特殊字符,或是变量在输出时的一些技巧,详细内容参考这里。
shell
本节介绍Powershell中的内置变量,或是称为自动变量。ide
在Powershell命令行中,能够输入 Get-Variable 命令查看Powershell中的全部内置变量ui
PS C:\> Get-Variable Name Value ---- ----- $ cls ? True ^ cls _ args {} ConfirmPreference High ConsoleFileName DebugPreference SilentlyContinue ...
下面解释Powershell中常用到的内置变量的意思。this
Powershell内置变量名称 |
说明 |
---|---|
$$ | 当前会话中收到的最后一行中的最后一个令牌(你能够理解为最后一条执行命令) |
$? | 最后一个操做的执行状态。这个操做能够是Powershell命令,或是调用exe等的返回值,若是最后一个操做成功,则$?包含的值时True,不然包含的值是False。这个内置在判断上一个操做是否成功执行时,很是有用。 |
$LastExitCode | 最后一个基于 Windows 的程序的退出代码。注意区分该变量与$?的区别 |
$True | 包含True,能够在命令或脚本中使用此内置变量来代替字符串"TRUE"。 |
$False | 包含False,能够在命令或脚本中使用此内置变量来代替字符串"FALSE"。 |
$NULL | 包含NULL或空值。能够在命令和脚本中使用此变量表示 NULL,而不是使用字符串"NULL"。若是该字符串转换为非空字符串或非零整数,则可将该字符串解释为TRUE。spa |
$_ | 包含管道对象中的当前对象,在对管道中的对象作筛选或是执行相应的操做命令时,该内置变量尤为有用。如如下命令是筛选全部以 Get-Com 开头的命令操作系统 Get-Command | Where-Object {$_.Name -like "Get-Com*"}命令行 |
$This | 在定义脚本属性或脚本方法的脚本块中,$This 变量引用要扩展的对象。这个和高级语言中的this同样,表示的是当前要引用的对象。注意该内置变量与$_的不一样。 |
$PID | 当前 Windows PowerShell 会话的进程的进程标识符 (PID),一个整数表示的数字。 |
$ShellID | 当前Shell的标示符,如Microsoft.PowerShell |
$PsUICulture | 操做系统中当前所用的用户界面 (UI) 区域性的名称(例如,若是是简体中文,则该值是zh-CN)。UI 区域性肯定哪些文本字符串用于用户界面元素(如菜单和消息)。这是系统的System.Globalization.CultureInfo.CurrentUICulture.Name 属性的值 |
$PsCulture | 操做系统中当前所用的区域性的名称(例如,若是是简体中文,则该值是zh-CN)。区域性肯定数字、货币和日期等项的显示格式。这是系统的 System.Globalization.CultureInfo.CurrentCulture.Name 属性的值。 |
$PsHome | Windows PowerShell 的安装目录的完整路径(一般为 %windir%\System32\WindowsPowerShell\v1.0)。能够在 Windows PowerShell 文件的路径中使用此变量。对象 |
$Home | 用户的主目录的完整路径,等效于 %homedrive%或%homepath% 环境变量 |
$Pwd | 当前目录的完整路径 |
$Host | 表示 Windows PowerShell 的当前主机应用程序(通俗点讲就是表明当前主机)。能够使用此变量在命令中表示当前主机,或者显示或更改主机的属性,如 $Host.version、$Host.CurrentCulture 或 $host.ui.rawui.setbackgroundcolor("Red")。 |
$Profile | 当前用户和当前主机应用程序的 Windows PowerShell 配置文件的完整路径。能够在命令中使用此变量表示配置文件。 |
$PsVersionTable | 只读哈希表,表示当前运行的Powershell版本的详细信息,该表包含下列项。 CLRVersion: 公共语言运行时 (CLR) 的版本进程 BuildVersion: 当前版本的内部版本号 PSVersion: Windows PowerShell 版本号 WSManStackVersion: WS-Management 堆栈的版本号 PSCompatibleVersions: 与当前版本兼容的 Windows PowerShell 版本 SerializationVersion : 序列化方法的版本 PSRemotingProtocolVersion : Windows PowerShell 远程管理协议的版本 |