除了執行 Cmdlet,您也可以在 Windows PowerShell 中執行函數。Windows PowerShell 會隨附一些內建函數,您可以新增從其他使用者取得的函數並且撰寫自己的函數。

關於函數

「函數」(Function) 是一種 Windows PowerShell 的命令類型。您可以輸入函數名稱,藉此執行函數,如同執行 Cmdlet 的方式。與 Cmdlet 一樣,函數可以擁有參數。函數如同 Cmdlet,可以接受 .NET 物件做為輸入值,然後傳回 .NET 物件做為輸出結果。事實上,函數可以執行所有 Cmdlet 能夠完成的工作。

函數最讓人滿意的一點是它們真的很容易撰寫。但與以 C# 撰寫的 Cmdlet 所不同的是,函數只是 Windows PowerShell 命令與運算式的具名群組。如果您可以在 Windows PowerShell 中輸入命令,那麼您就可以撰寫函數。

尋找函數

函數就是命令,所以若要尋找函數,請使用 Get-Command Cmdlet。

例如,若要尋找工作階段中的所有函數,請輸入:

get-command -CommandType function

Windows PowerShell 也提供 Function: 磁碟機,其中包含工作階段中的所有函數。若要瀏覽到 Function: 磁碟機,請使用您在檔案系統磁碟機中瀏覽時所用的相同方法。

若要進入函數磁碟機:

cd function:

若要顯示函數磁碟機中的函數,請輸入:

dir function:

執行函數

若要執行函數,只要輸入函數名稱即可。例如,若要執行 Clear-Host 函數,請輸入:

clear-host

在 Windows PowerShell 主控台中,Clear-Host 函數會刪除主控台視窗中的所有文字,這個行為在其他主控程式中可能會有差異或完全沒有作用。

若要使用函數的參數,請輸入前面接連字號的參數名稱、再加上一個值,做法如同輸入 Cmdlet 的參數。

例如,每次在一頁顯示說明主題的 Help 函數與 Get-Help Cmdlet 一樣,擁有相同的參數。若要使用 Help 函數只顯示 Get-Service Cmdlet 說明主題中的範例,請輸入:

help -name get-service -examples

取得函數的說明

函數也可以有說明主題。若要尋找某一函數的說明主題,請使用 Get-Help Cmdlet。這與使用相同 Cmdlet 取得 Cmdlet 的說明一樣。

例如,若要取得 Disable-PSRemoting 函數的說明,請輸入:

get-help Disable-PSRemoting

您可以使用 Get-Help Cmdlet 的所有參數,取得函數的說明。例如,若只要取得 Disable-PSRemoting 函數說明主題中的範例,請輸入:

get-help Disable-PSRemoting -example

撰寫函數

函數是命令或運算式的具名群組。若要撰寫一個簡單的函數,請使用下列格式:

function <name> { <commands> }

只要輸入 function、函數名稱,然後以大括號 ({ }) 括住命令即可。

例如,如果您重複輸入特定的命令 (如 get-help get-member -examples),便可以撰寫執行命令的函數,幫助您節省時間。下列稱為 GMEX 的函數會執行命令。

function GMEX {get-help get-member -examples}

在 Windows PowerShell 命令提示中輸入 (或從這個主題複製並貼上) 函數並按下 ENTER 後,便可以在您的工作階段中使用函數。若要執行函數,請輸入 GMEX

這是一個很簡單的函數,但是只要再加上幾行,您便可以新增參數、設定選擇性或強制性參數、加入使用者訊息並且為您的函數加入說明主題。隨著您更深入了解 Windows PowerShell,便可以撰寫具備所有 Cmdlet 功能的進階函數。

如需撰寫函數的詳細資訊,請參閱 about_Functionsabout_Comment_Based_Helpabout_Functions_Advanced

儲存函數

當您開啟 Windows PowerShell 時,您便處於 Windows PowerShell 工作階段。該工作階段在您關閉 Windows PowerShell 視窗 (或是輸入 Exit 結束工作階段) 之前,都會存留著。除非將項目儲存在磁碟的檔案中或是儲存在登錄中,否則您於工作階段期間所建立的項目會在工作階段結束時刪除。

若要在儲存所撰寫的函數以供日後在 Windows PowerShell 工作階段中使用,請建立 Windows PowerShell 設定檔,然後將您的函數儲存在設定檔中。

如需詳細資訊,請參閱 about_Profiles

請參閱




目錄