PowerShell - 指令碼程式設計



Windows PowerShell 是一款專為系統管理員設計的命令列 shell指令碼語言。其在 Linux 中的類似物稱為 Bash 指令碼。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;}
廣告