PowerShell是構建在.NET框架之上的,所有的內在信息都是遵從.NET對象的格式,將信息和相關的函數封裝。管道傳遞的信息就是對象,本文為大家介紹變量和對象的基礎使用方法,純小白教程,讓你五分鐘掌握變量與對象的簡單使用。
1.使用變量存儲信息
使用變量可以把一個管道或命令的輸出保存下來後續使用,PowerShell中的變量用$符號作為開始,幾乎可以使用任意字符作為變量的名稱:
Note:如果保存了大量的數據到一個變量中,以後不用了,則需要給變量賦值$null,用以釋放內存空間。
變量名字也可以帶特殊字符,但是使用時需要加上{},如下:
2.使用環境變量
PowerShell提供瞭如下幾種方法來訪問環境變量(如獲取系統路徑或當前用戶名稱)
獲取所有環境變量:Get-ChildItem env:
獲取某一個變量:
3.定義變量的作用域
有時候需要控制變量的可用範圍,為了在指定的範圍內創建變量,在變量的名稱前面需要提供SCOPE關鍵字,訪問指定範圍內的變量,在變量的前面提供範圍:
定義:$SCOPE:variable = value
訪問:$SCOPE:variable
一共有三個可用的SCOPE關鍵字:
Global:全局範圍,在此範圍內的變量對其他範圍來說都是可見的;
Script:代表當前腳本範圍,此範圍內的變量對於其他腳本內的範圍都是可見的;
Local:當前範圍
4.使用.NET對象
如何使用PowerShell提供的內在支持的、功能強大的.NET對象。
調用一個類的靜態方法:[ClassName]::MethodName(parameter list)
調用一個對象的普通方法:$object.MethodName(parameter list)
訪問一個類的靜態屬性:[ClassName]::PropertyName
訪問一個對象的普通屬性:$object.PropertyName
5.創建一個.NET對象實例
使用New-Object命令來創建一個對象的實例:
默認情況下,PowerShell只會加載最常用的類型。當然,還有一些類需要你加載對應的類庫文件後才可用。
為了加載一個類庫,使用System.Reflection.Assembly類提供的方法來加載:
Note:LoadWithPartialName方法不適合在腳本或產品發佈時使用,原因是它默認加載最新版本的庫文件,安全的方法是使用[Reflection.Assembly]::Load()加上完整的名稱來加載。
6.快速輸入較長的類名
當在腳本文件中使用具有較長命名的類的時候,可以把類名保存到一個變量中,方便下次使用:
可以使用-f操作符,格式化命名空間字符串:
查看兩個變量的類型如下:
7.查找如何使用類型和對象
如果知道一個類型,可以使用MSDN去查找,或者使用Get-Member命令查找使用方法:
如果只有對象,可以使用GetType()方法獲取類型,後再用上述方法查找使用方法,或者直接Get-Member:
8.向對象添加自定義方法和屬性
可以通過Add-Member命令向對象添加自定義的成員:
可以使用Get-Help Add-Member查詢更詳細的使用方法。
9.向類添加自定義方法和屬性
可以使用自定義的類型擴展文件(custom type extension files),向一個類中的所有對象添加成員。
比如我要給所有的DateTime類型添加一個腳本屬性IsLeapYear,來表示這個DateTime的年是否是閏年,操作步驟如下:
在PowerShell默認根目錄下創建一個空的類擴展文件”Types.Bob.ps1xml”;
在裡面添加如下代碼:
在PowerShell根目錄下執行如下命令:
PS C:\Windows\System32\WindowsPowerShell\v1.0> $typeFile = (Join-Path $pshome "Types.Bob.ps1xml")
PS C:\Windows\System32\WindowsPowerShell\v1.0> Update-TypeData -PrependPath $typeFile
最後就可以獲取IsLeapYearDay屬性了:
[本人原創文章,僅供學習研究之用,如有錯誤請留言,如覺得不錯請推薦分享,謝謝支持]
[更詳細的內容請參考:本人博客園——薰薰熊的技術分享社區 by 永遠薰薰]