Windows Powershell 自動化變量
Powershell 自動化變量 是那些一旦打開Powershell就會自動加載的變量。
這些變量一般存放的內(nèi)容包括
用戶信息:例如用戶的根目錄$home
配置信息:例如powershell控制臺的大小,顏色,背景等。
運行時信息:例如一個函數(shù)由誰調(diào)用,一個腳本運行的目錄等。
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 狀態(tài)信息的變量。
這些變量由 Windows PowerShell 創(chuàng)建并維護。
詳細說明
下面是 Windows PowerShell 中的自動變量的列表:
$$ 包含會話所收到的最后一行中的最后一個令牌。 $? 包含最后一個操作的執(zhí)行狀態(tài)。如果最后一個操作成功,則包含 TRUE,失敗則包含 FALSE。 $^ 包含會話所收到的最后一行中的第一個令牌。 $_ 包含管道對象中的當前對象。在對管道中的每個對象或所選對象執(zhí)行操作的命令中,可以使用此變量。 $Args 包含由未聲明參數(shù)和/或傳遞給函數(shù)、腳本或腳本塊的參數(shù)值組成的數(shù)組。 在創(chuàng)建函數(shù)時可以聲明參數(shù),方法是使用 param 關(guān)鍵字或在函數(shù)名稱后添加以圓括號括起、逗號 分隔的參數(shù)列表。 $ConsoleFileName 包含在會話中最近使用的控制臺文件 (.psc1) 的路徑。在通過 PSConsoleFile 參數(shù)啟動 Windows PowerShell 或使用 Export-Console cmdlet 將管理單元名稱導出到控制臺文件 時,將填充此變量。 在使用不帶參數(shù)的 Export-Console cmdlet 時,它自動更新在會話中最近使用的控制臺文件。 可以使用此自動變量確定要更新的文件。 $Error 包含錯誤對象的數(shù)組,這些對象表示最近的一些錯誤。最近的錯誤是該數(shù)組中的第一個錯誤對象 ($Error[0])。 $Event 包含一個 PSEventArgs 對象,該對象表示一個正在被處理的事件。 此變量只在事件注冊命令(例如 Register-ObjectEvent)的 Action 塊內(nèi)填充。 此變量的值是 Get-Event cmdlet 返回的同一個對象。 因此,可以在 Action 腳本塊中使用 $Event 變量的屬性(例如 $Event.TimeGenerated)。 $EventSubscriber 包含一個 PSEventSubscriber 對象,該對象表示正在被處理的事件的事件訂閱者。 此變量只在事件注冊命令的 Action 塊內(nèi)填充。此變量的值 是 Get-EventSubscriber cmdlet 返回的同一個對象。 $ExecutionContext 包含一個 EngineIntrinsics 對象,該對象表示 Windows PowerShell 主機的執(zhí)行上下文。 可以使用此變量來查找可用于 cmdlet 的執(zhí)行對象。 $False 包含 FALSE。可以使用此變量在命令和腳本中表示 FALSE,而不是使用字符串”false”。如果 該字符串轉(zhuǎn)換為非空字符串或非零整數(shù),則可將該字符串解釋為 TRUE。 $ForEach 包含 ForEach-Object 循環(huán)的枚舉數(shù)??梢詫?$ForEach 變量的值使用枚舉數(shù)的屬性和方法。 此變量僅在運行 For 循環(huán)時存在,循環(huán)完成即會刪除。 $Home 包含用戶的主目錄的完整路徑。此變量等效于 %homedrive%%homepath% 環(huán)境變量。 $Host 包含一個對象,該對象表示 Windows PowerShell 的當前主機應(yīng)用程序。可以使用此變量在命 令中表示當前主機,或者顯示或更改主機的屬性,如 $Host.version、$Host.CurrentCulture 或 $host.ui.rawui.setbackgroundcolor(“Red”)。 $Input 一個枚舉數(shù),它包含傳遞給函數(shù)的輸入。$Input 變量區(qū)分大小寫,只能用于函數(shù)和腳本塊。(腳 本塊本質(zhì)上是未命名的函數(shù)。)在函數(shù)的 Process 塊中,$Input 變量包含當前位于管道中的對 象。在 Process 塊完成后,$Input 的值為 NULL。如果函數(shù)沒有 Process 塊,則 $Input 的值可用于 End 塊,它包含函數(shù)的所有輸入。 $LastExitCode 包含運行的最后一個基于 Windows 的程序的退出代碼。 $Matches $Matches 變量與 -match 和 -not match 運算符一起使用。 將標量輸入提交給 -match 或 -notmatch 運算符時,如果檢測到匹配,則會返回一個布爾值, 并使用由所有匹配字符串值組成的哈希表填充 $Matches 自動變量。有關(guān) -match 運算符的詳細 信息,請參閱 about_comparison_operators。 $MyInvocation 包含一個對象,該對象具有有關(guān)當前命令(如腳本、函數(shù)或腳本塊)的信息??梢允褂迷搶ο笾械? 信息(如腳本的路徑和文件名 ($myinvocation.mycommand.path) 或函數(shù)的名稱 ($myinvocation.mycommand.name))來標識當前命令。對于查找正在運行的腳本的名稱,這非常有用。 $NestedPromptLevel 包含當前提示級別。值 0 指示原始提示級別。該值在進入嵌套級別時遞增,在退出嵌套級別時遞減。 例如,在使用 $Host.EnterNestedPrompt 方法時,Windows PowerShell 會出現(xiàn)嵌套命令 提示符。在 Windows PowerShell 調(diào)試程序中到達斷點時,Windows PowerShell 也會出現(xiàn)嵌 套命令提示符。 在進入嵌套提示時,Windows PowerShell 暫停當前命令,保存執(zhí)行上下文,并遞增 $NestedPromptLevel 變量的值。要創(chuàng)建更多嵌套命令提示符(最多 128 級)或返回到原始命 令提示符,請完成命令,或鍵入”exit”。 $NestedPromptLevel 變量有助于跟蹤提示級別??梢詣?chuàng)建包含此值的備用 Windows PowerShell 命令提示符,以使此值始終可見。 $NULL 包含 NULL 或空值??梢栽诿詈湍_本中使用此變量表示 NULL,而不是使用字符串”NULL”。 如果該字符串轉(zhuǎn)換為非空字符串或非零整數(shù),則可將該字符串解釋為 TRUE。 $PID 包含承載當前 Windows PowerShell 會話的進程的進程標識符 (PID)。 $Profile 包含當前用戶和當前主機應(yīng)用程序的 Windows PowerShell 配置文件的完整路徑??梢栽诿? 中使用此變量表示配置文件。例如,可以在命令中使用此變量確定是否已創(chuàng)建某個配置文件: test-path $profile 也可以在命令中使用此變量創(chuàng)建配置文件: new-item -type file -path $pshome -force 此外,還可以在命令中使用此變量在記事本中打開配置文件: notepad $profile $PSBoundParameters 包含活動參數(shù)及其當前值的字典。只有在聲明參數(shù)的作用域(如腳本或函數(shù))中, 此變量才有值。可以使用此變量顯示或更改參數(shù)的當前值,也可以將參數(shù)值傳遞給 其他腳本或函數(shù)。 例如: function test { param($a, $b) # Display the parameters in dictionary format. $psboundparameters # Call the Test1 function with $a and $b. test1 @psboundparameters } $PsCmdlet 包含一個對象,該對象表示正在運行的 cmdlet 或高級函數(shù)。 可以在 cmdlet 或函數(shù)代碼中使用該對象的屬性和方法來響應(yīng)使用的條件。例如, ParameterSetName 屬性包含正在使用的參數(shù)集的名稱,而 ShouldProcess 方法將 WhatIf 和 Confirm 參數(shù)動態(tài)添加到 cmdlet。 有關(guān) $PSCmdlet 自動變量的詳細信息,請參閱 about_Functions_Advanced。 $PsCulture 包含操作系統(tǒng)中當前所用的區(qū)域性的名稱。區(qū)域性確定數(shù)字、貨幣和日期等項的顯示格式。這是系 統(tǒng)的 System.Globalization.CultureInfo.CurrentCulture.Name 屬性的值。要獲取系統(tǒng) 的 System.Globalization.CultureInfo 對象,請使用 Get-Culture cmdlet。 $PSDebugContext 在調(diào)試期間,此變量包含有關(guān)調(diào)試環(huán)境的信息。在其他時間,此變量包含 NULL 值。因此,可以使 用此變量指示調(diào)試程序是否擁有控制權(quán)。填充之后,此變量包含一個具有 Breakpoints 和 InvocationInfo 屬性的 PsDebugContext 對象。InvocationInfo 屬性有多個十分有用的 屬性,包括 Location 屬性。Location 屬性指示正在調(diào)試的腳本的路徑。 $PsHome 包含 Windows PowerShell 的安裝目錄的完整路徑(通常為 %windir%System32WindowsPowerShellv1.0)??梢栽?Windows PowerShell 文件 的路徑中使用此變量。例如,下面的命令在概念性幫助主題中搜索”variable”一詞: select-string -pattern variable -path $pshome*.txt $PSScriptRoot 包含要從中執(zhí)行腳本模塊的目錄。 通過此變量,腳本可以使用模塊路徑來訪問其他資源。 $PsUICulture 包含操作系統(tǒng)中當前所用的用戶界面 (UI) 區(qū)域性的名稱。UI 區(qū)域性確定哪些文本字符串用于用戶 界面元素(如菜單和消息)。這是系統(tǒng)的 System.Globalization.CultureInfo.CurrentUICulture.Name 屬性的值。要獲取系統(tǒng) 的 System.Globalization.CultureInfo 對象,請使用 Get-UICulture cmdlet。 $PsVersionTable 包含一個只讀哈希表,該哈希表顯示有關(guān)在當前會話中運行的 Windows PowerShell 版本的詳 細信息。 該表包括下列項: CLRVersion: 公共語言運行時 (CLR) 的版本 BuildVersion: 當前版本的內(nèi)部版本號 PSVersion: Windows PowerShell 版本號 WSManStackVersion: WS-Management 堆棧的版本號 PSCompatibleVersions: 與當前版本兼容的 Windows PowerShell 版本 SerializationVersion :序列化方法的版本 PSRemotingProtocolVersion:Windows PowerShell 遠程管理協(xié)議的版本 $Pwd 包含一個路徑對象,該對象表示當前目錄的完整路徑。 $Sender 包含生成此事件的對象。此變量只在事件注冊命令的 Action 塊內(nèi)填充。 此變量的值也可在 Get-Event 返回的 PSEventArgs (System.Management.Automation.PSEventArgs) 對象的 Sender 屬性中找到。 $ShellID 包含當前 shell 的標識符。 $SourceArgs 包含表示正在被處理的事件的事件參數(shù)的對象。此變量只在事件注冊命令的 Action 塊內(nèi)填充。此變量的值也可在 Get-Event 返回的 PSEventArgs (System.Management.Automation.PSEventArgs) 對象的 SourceArgs 屬性中找到。 $SourceEventArgs 包含一個對象,該對象表示從正在被處理的事件的 EventArgs 中派生出的 第一個事件參數(shù)。此變量只在事件注冊命令的 Action 塊內(nèi)填充。 此變量的值也可在 Get-Event 返回的 PSEventArgs (System.Management.Automation.PSEventArgs) 對象的 SourceArgs 屬性中找到。 $This 在定義腳本屬性或腳本方法的腳本塊中,$This 變量引用要擴展的對象。 $True 包含 TRUE。可以在命令和腳本中使用此變量表示 TRUE。
另請參閱
about_Hash_Tables
about_Preference_Va
riables
about_Variables
相關(guān)文章
Windows Powershell Where-Object 條件過濾
本篇會對條件判斷進行實際應(yīng)用。在管道中可以通過條件判斷過濾管道結(jié)果,Where-Object會對集合逐個過濾,將符合條件的結(jié)果保留。2014-10-10PowerShell中Job相關(guān)命令及并行執(zhí)行任務(wù)詳解
這篇文章主要給大家介紹了關(guān)于PowerShell中Job相關(guān)命令及并行執(zhí)行任務(wù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。2018-03-03Powershell讀取本機注冊表中的所有軟件關(guān)聯(lián)擴展名
這篇文章主要介紹了Powershell讀取本機注冊表中的所有軟件關(guān)聯(lián)擴展名,本文直接給出實現(xiàn)代碼,需要的朋友可以參考下2015-03-03