Powershell - 指令碼

Windows PowerShell 是一種專為系統管理而設計的 命令列 shell指令碼語言。 它在 Linux 中的類比稱為 Bash Scripting。Windows PowerShell 構建於.NET Framework 之上,可幫助 IT 專業人員控制和自動化 Windows 作業系統和在 Windows Server 環境中執行的應用程式的管理。

Windows PowerShell 命令(稱為 cmdlet)允許你從命令列管理計算機。Windows PowerShell 提供程式允許你像訪問檔案系統一樣輕鬆訪問資料儲存,例如登錄檔和證書儲存。

此外,Windows PowerShell 還具有豐富的表示式解析器和完全開發的指令碼語言。因此,簡單來說,你可以完成使用 GUI 執行的所有任務等等。Windows PowerShell 指令碼是一種完全開發的指令碼語言,具有豐富的表示式解析器/

特徵

  • Cmdlet - Cmdlet 執行常見的系統管理任務,例如管理登錄檔,服務,程序,事件日誌以及使用 Windows Management Instrumentation(WMI)

  • 面向任務 - PowerShell 指令碼語言是基於任務的,併為現有指令碼和命令列工具提供支援。

  • 一致的設計 - 由於 cmdlet 和系統資料儲存使用通用語法並具有通用的命名約定,因此資料共享很容易。一個 cmdlet 的輸出可以通過管道傳輸到另一個 cmdlet 而無需任何操作。

  • 易於使用 - 簡化的基於命令的導航使使用者可以在登錄檔和其他資料儲存中導航,類似於檔案系統導航。

  • 基於物件 - PowerShell 擁有強大的物件操作功能。物件可以直接傳送到其他工具或資料庫。

  • 可擴充套件的介面。 - PowerShell 可作為獨立軟體供應商進行定製,企業開發人員可以使用 PowerShell 構建自定義工具和實用程式來管理其軟體。

變數

PowerShell 變數是命名物件。由於 PowerShell 使用物件,因此這些變數用於處理物件。

建立變數

變數名稱應以 $ 開頭,並且可以在其名稱中包含字母數字字元和下劃線。可以通過鍵入有效的變數名來建立變數。

在 PowerShell ISE 控制檯中鍵入以下命令。假設你在 D:\test 資料夾中。

$location = Get-Location

這裡我們建立了一個變數 $location 併為其分配了 Get-Location cmdlet 的輸出。它現在包含當前位置。

使用變數

在 PowerShell ISE 控制檯中鍵入以下命令。

 $location

輸出

你可以在 PowerShell 控制檯中看到以下輸出。

Path                                                                                    
----                                                                                    
D:\test                                                                                 

獲取變數資訊

Get-Member cmdlet 可以告訴正在使用的變數的型別。請參閱下面的示例。

 $location | Get-Member

輸出

你可以在 PowerShell 控制檯中看到以下輸出。

   TypeName: System.Management.Automation.PathInfo

Name          MemberType   Definition                                               
----          ----------   ----------                                               
Equals        Method       bool Equals(System.Object obj)                           
GetHashCode   Method       int GetHashCode()                                        
GetType       Method       type GetType()                                           
ToString      Method       string ToString()                                        
Drive         Property     System.Management.Automation.PSDriveInfo Drive {get;}    
Path          Property     System.String Path {get;}                                
Provider      Property     System.Management.Automation.ProviderInfo Provider {get;}
ProviderPath  Property     System.String ProviderPath {get;}