Windows Powershell 自动化变量
程序员文章站
2022-09-05 18:11:03
powershell 自动化变量 是那些一旦打开powershell就会自动加载的变量。
这些变量一般存放的内容包括
用户信息:例如用户的根目录$home
配置...
powershell 自动化变量 是那些一旦打开powershell就会自动加载的变量。
这些变量一般存放的内容包括
用户信息:例如用户的根目录$home
配置信息:例如powershell控制台的大小,颜色,背景等。
运行时信息:例如一个函数由谁调用,一个脚本运行的目录等。
ps> $home c:\users\test ps> $currentprocessid=$pid ps> $currentprocessid 5356 ps> get-process -id $pid handles npm(k) pm(k) ws(k) vm(m) cpu(s) id processname ------- ------ ----- ----- ----- ------ -- ----------- 390 10 30604 33100 172 1.11 5356 powershell ps> $profile c:\users\test\documents\windowspowershell\microsoft.powershell_profile.ps1
powershell中的某些自动化变量只能读,不能写。例如:$pid。
可以通过get-help about_automatic_variables查看automatic_variables的帮助。
topic
about_automatic_variables
主题
about_automatic_variables
简短说明
说明存储 windows powershell 状态信息的变量。
这些变量由 windows powershell 创建并维护。
详细说明
下面是 windows powershell 中的自动变量的列表:
$$ 包含会话所收到的最后一行中的最后一个令牌。 $? 包含最后一个操作的执行状态。如果最后一个操作成功,则包含 true,失败则包含 false。 $^ 包含会话所收到的最后一行中的第一个令牌。 $_ 包含管道对象中的当前对象。在对管道中的每个对象或所选对象执行操作的命令中,可以使用此变量。 $args 包含由未声明参数和/或传递给函数、脚本或脚本块的参数值组成的数组。 在创建函数时可以声明参数,方法是使用 param 关键字或在函数名称后添加以圆括号括起、逗号 分隔的参数列表。 $consolefilename 包含在会话中最近使用的控制台文件 (.psc1) 的路径。在通过 psconsolefile 参数启动 windows powershell 或使用 export-console cmdlet 将管理单元名称导出到控制台文件 时,将填充此变量。 在使用不带参数的 export-console cmdlet 时,它自动更新在会话中最近使用的控制台文件。 可以使用此自动变量确定要更新的文件。 $error 包含错误对象的数组,这些对象表示最近的一些错误。最近的错误是该数组中的第一个错误对象 ($error[0])。 $event 包含一个 pseventargs 对象,该对象表示一个正在被处理的事件。 此变量只在事件注册命令(例如 register-objectevent)的 action 块内填充。 此变量的值是 get-event cmdlet 返回的同一个对象。 因此,可以在 action 脚本块中使用 $event 变量的属性(例如 $event.timegenerated)。 $eventsubscriber 包含一个 pseventsubscriber 对象,该对象表示正在被处理的事件的事件订阅者。 此变量只在事件注册命令的 action 块内填充。此变量的值 是 get-eventsubscriber cmdlet 返回的同一个对象。 $executioncontext 包含一个 engineintrinsics 对象,该对象表示 windows powershell 主机的执行上下文。 可以使用此变量来查找可用于 cmdlet 的执行对象。 $false 包含 false。可以使用此变量在命令和脚本中表示 false,而不是使用字符串”false”。如果 该字符串转换为非空字符串或非零整数,则可将该字符串解释为 true。 $foreach 包含 foreach-object 循环的枚举数。可以对 $foreach 变量的值使用枚举数的属性和方法。 此变量仅在运行 for 循环时存在,循环完成即会删除。 $home 包含用户的主目录的完整路径。此变量等效于 %homedrive%%homepath% 环境变量。 $host 包含一个对象,该对象表示 windows powershell 的当前主机应用程序。可以使用此变量在命 令中表示当前主机,或者显示或更改主机的属性,如 $host.version、$host.currentculture 或 $host.ui.rawui.setbackgroundcolor(“red”)。 $input 一个枚举数,它包含传递给函数的输入。$input 变量区分大小写,只能用于函数和脚本块。(脚 本块本质上是未命名的函数。)在函数的 process 块中,$input 变量包含当前位于管道中的对 象。在 process 块完成后,$input 的值为 null。如果函数没有 process 块,则 $input 的值可用于 end 块,它包含函数的所有输入。 $lastexitcode 包含运行的最后一个基于 windows 的程序的退出代码。 $matches $matches 变量与 -match 和 -not match 运算符一起使用。 将标量输入提交给 -match 或 -notmatch 运算符时,如果检测到匹配,则会返回一个布尔值, 并使用由所有匹配字符串值组成的哈希表填充 $matches 自动变量。有关 -match 运算符的详细 信息,请参阅 about_comparison_operators。 $myinvocation 包含一个对象,该对象具有有关当前命令(如脚本、函数或脚本块)的信息。可以使用该对象中的 信息(如脚本的路径和文件名 ($myinvocation.mycommand.path) 或函数的名称 ($myinvocation.mycommand.name))来标识当前命令。对于查找正在运行的脚本的名称,这非常有用。 $nestedpromptlevel 包含当前提示级别。值 0 指示原始提示级别。该值在进入嵌套级别时递增,在退出嵌套级别时递减。 例如,在使用 $host.enternestedprompt 方法时,windows powershell 会出现嵌套命令 提示符。在 windows powershell 调试程序中到达断点时,windows powershell 也会出现嵌 套命令提示符。 在进入嵌套提示时,windows powershell 暂停当前命令,保存执行上下文,并递增 $nestedpromptlevel 变量的值。要创建更多嵌套命令提示符(最多 128 级)或返回到原始命 令提示符,请完成命令,或键入”exit”。 $nestedpromptlevel 变量有助于跟踪提示级别。可以创建包含此值的备用 windows powershell 命令提示符,以使此值始终可见。 $null 包含 null 或空值。可以在命令和脚本中使用此变量表示 null,而不是使用字符串”null”。 如果该字符串转换为非空字符串或非零整数,则可将该字符串解释为 true。 $pid 包含承载当前 windows powershell 会话的进程的进程标识符 (pid)。 $profile 包含当前用户和当前主机应用程序的 windows powershell 配置文件的完整路径。可以在命令 中使用此变量表示配置文件。例如,可以在命令中使用此变量确定是否已创建某个配置文件: test-path $profile 也可以在命令中使用此变量创建配置文件: new-item -type file -path $pshome -force 此外,还可以在命令中使用此变量在记事本中打开配置文件: notepad $profile $psboundparameters 包含活动参数及其当前值的字典。只有在声明参数的作用域(如脚本或函数)中, 此变量才有值。可以使用此变量显示或更改参数的当前值,也可以将参数值传递给 其他脚本或函数。 例如: function test { param($a, $b) # display the parameters in dictionary format. $psboundparameters # call the test1 function with $a and $b. test1 @psboundparameters } $pscmdlet 包含一个对象,该对象表示正在运行的 cmdlet 或高级函数。 可以在 cmdlet 或函数代码中使用该对象的属性和方法来响应使用的条件。例如, parametersetname 属性包含正在使用的参数集的名称,而 shouldprocess 方法将 whatif 和 confirm 参数动态添加到 cmdlet。 有关 $pscmdlet 自动变量的详细信息,请参阅 about_functions_advanced。 $psculture 包含操作系统中当前所用的区域性的名称。区域性确定数字、货币和日期等项的显示格式。这是系 统的 system.globalization.cultureinfo.currentculture.name 属性的值。要获取系统 的 system.globalization.cultureinfo 对象,请使用 get-culture cmdlet。 $psdebugcontext 在调试期间,此变量包含有关调试环境的信息。在其他时间,此变量包含 null 值。因此,可以使 用此变量指示调试程序是否拥有控制权。填充之后,此变量包含一个具有 breakpoints 和 invocationinfo 属性的 psdebugcontext 对象。invocationinfo 属性有多个十分有用的 属性,包括 location 属性。location 属性指示正在调试的脚本的路径。 $pshome 包含 windows powershell 的安装目录的完整路径(通常为 %windir%system32windowspowershellv1.0)。可以在 windows powershell 文件 的路径中使用此变量。例如,下面的命令在概念性帮助主题中搜索”variable”一词: select-string -pattern variable -path $pshome*.txt $psscriptroot 包含要从中执行脚本模块的目录。 通过此变量,脚本可以使用模块路径来访问其他资源。 $psuiculture 包含操作系统中当前所用的用户界面 (ui) 区域性的名称。ui 区域性确定哪些文本字符串用于用户 界面元素(如菜单和消息)。这是系统的 system.globalization.cultureinfo.currentuiculture.name 属性的值。要获取系统 的 system.globalization.cultureinfo 对象,请使用 get-uiculture cmdlet。 $psversiontable 包含一个只读哈希表,该哈希表显示有关在当前会话中运行的 windows powershell 版本的详 细信息。 该表包括下列项: clrversion: 公共语言运行时 (clr) 的版本 buildversion: 当前版本的内部版本号 psversion: windows powershell 版本号 wsmanstackversion: ws-management 堆栈的版本号 pscompatibleversions: 与当前版本兼容的 windows powershell 版本 serializationversion :序列化方法的版本 psremotingprotocolversion:windows powershell 远程管理协议的版本 $pwd 包含一个路径对象,该对象表示当前目录的完整路径。 $sender 包含生成此事件的对象。此变量只在事件注册命令的 action 块内填充。 此变量的值也可在 get-event 返回的 pseventargs (system.management.automation.pseventargs) 对象的 sender 属性中找到。 $shellid 包含当前 shell 的标识符。 $sourceargs 包含表示正在被处理的事件的事件参数的对象。此变量只在事件注册命令的 action 块内填充。此变量的值也可在 get-event 返回的 pseventargs (system.management.automation.pseventargs) 对象的 sourceargs 属性中找到。 $sourceeventargs 包含一个对象,该对象表示从正在被处理的事件的 eventargs 中派生出的 第一个事件参数。此变量只在事件注册命令的 action 块内填充。 此变量的值也可在 get-event 返回的 pseventargs (system.management.automation.pseventargs) 对象的 sourceargs 属性中找到。 $this 在定义脚本属性或脚本方法的脚本块中,$this 变量引用要扩展的对象。 $true 包含 true。可以在命令和脚本中使用此变量表示 true。
另请参阅
about_hash_tables
about_preference_va
riables
about_variables
推荐阅读
-
windows安装jdk配置哪些系统变量(jdk配置环境变量配置windows)
-
windows环境变量如何设置(彻底弄懂Windows 10环境变量)
-
windows安装jdk配置哪些系统变量(jdk配置环境变量配置windows)
-
windows环境变量如何设置(彻底弄懂Windows 10环境变量)
-
Windows10如何使用PowerShell让局域网电脑集体重启?
-
python 定义n个变量方法 (变量声明自动化)
-
Windows 环境变量编辑器使用步骤
-
win10环境变量怎么设置?在Windows 10中创建环境变量的3种方法(详细)
-
Windows Server 2016-Powershell之客户端加域
-
PowerShell中的$Input变量使用实例