探索使用 PowerShell Cmdlet 的參數
參數會修改 Cmdlet 所執行的動作。 您可以針對 Cmdlet 指定沒有參數、一個參數或許多參數。
參數格式
參數名稱開頭為破折號 (-)。 空格用於分隔您想要從參數名稱傳遞的值。 如果您傳遞的值包含空格,則需要使用引號將文字包住。 某些參數接受多個值,您必須以逗號分隔這些值,而且不能有空格。
選用與必要參數
參數可以是選用或必要參數。 如果需要參數,而且您執行 Cmdlet 時未提供該參數的值,則 Windows PowerShell 會提示您提供值。 例如,如果您執行 Get-Item 命令,您會從 Windows PowerShell 收到下列訊息,其中會包含提供 -Path 參數值的提示:
PS C:\> Get-Item
cmdlet Get-Item at command pipeline position 1
Supply values for the following parameters:
Path[0]:
如果您在提示中輸入 C:\ 文字,然後按 Enter 鍵兩次,則命令即會成功執行。 您必須按 Enter 鍵兩次,因為此參數可以接受多個值。 Windows PowerShell 會繼續提示輸入新值,直到您按下 Enter 鍵但實際上未提供該值為止。
在某些案例下,輸入參數名稱是選用的,您可以只輸入參數的值。 如果您執行 Get-ChildItem C:\命令,其與執行 Get-ChildItem -Path C:\ 命令相同,因為參數 -Path 定義為 Cmdlet 定義中的第一個參數。 這稱為位置參數。 您在本課程中都會注意到這些情況。 只有在已定義參數位置時,省略參數名稱才能運作。 並非所有命令都有位置參數。
交換器
參數是特殊案例。 其基本上是接受布林值的參數 (true 或 false)。 其與實際的布林參數不同,因為只有在執行命令時包含參數時,才會將值設定為 true。 範例為 Get-ChildItem Cmdlet 的 -Recurse 參數或參數。 命令 Get-ChildItem c:\ -Recurse 不僅會傳回 C:\ 目錄中的項目,也會傳回其所有子目錄中的項目。 如果沒有 -Recurse 參數,則只會傳回 C:\ 目錄中的項目。