如何使用 PowerShell 預設參數來變更命令行為

如何使用 PowerShell 預設參數來變更命令行為

許多人喜歡使用PowerShell,因為它允許他們做 Windows GUI 無法完成的事情。即便如此,不可否認的是,某些PowerShell cmdlet可能有點乏味或複雜。但是,如果有一種方法可以編輯這些 cmdlet 並使它們按照您想要的方式「運行」呢?不管你相信與否,有一個簡單的方法可以做到這一點。您可以透過修改PowerShell預設參數的值來變更cmdlet的行為。本文將向您展示如何使用 PowerShell 的預設參數來變更 cmdlet 命令行為。

警告

在開始之前,您需要記住一些事項。儘管更改 PowerShell 預設參數和 cmdelt 行為很方便,但可能會導致問題。如果執行腳本且該腳本假定修改後的 cmdlet 將以某種方式執行,則可能會得到不可預測的結果。因此,您應該確保仔細變更 PowerShell 預設參數。

快速復審

為了使用預設參數,您需要熟悉兩個 PowerShell 概念。第一個概念是可變的。在 PowerShell 中,變數名稱始終以美元符號開頭,您可以透過鍵入變數名稱來寫入變數的內容。

您可能熟悉的第二個概念是哈希表。哈希表本質上是由鍵/值對組成的列表。例如,假設您要建立一個包含美國各州名稱及其縮寫的雜湊表。下面是程式碼:

$StateList = @{}
$StateList.add('佛羅裡達州','FL')
$StateList.add('南卡羅來納州','SC')
$StateList.add('喬治亞州','GA')
$StateList

第一行程式碼建立一個名為$StateList的空哈希表。接下來的三行將條目新增到表中。每個條目由一個鍵(狀態名稱)和一個值(狀態縮寫)組成。最後一行列出了表格的內容。您可以在下圖中看到正在運行的程式碼。

這只是一個非常簡單的範例,還有許多其他方法可以使用哈希表。

使用 PowerShell 預設參數

PowerShell 有一個內建變量,用於儲存與其 cmdlet 一起使用的預設參數。這個變數稱為$PSDefaultParameterValues。從變量的最初介紹和名稱中您可能已經註意到,這不是一個普通的變量,而是一個哈希表。但是,如果您在 PowerShell 中輸入變數名稱,您很快就會看到該表是空的,如下所示。

如何使用 PowerShell 預設參數來變更命令行為

那我們可以用這個$PSDefaultParameterValues變數做什麼。如上所述,您可以控制 PowerShell cmdlet 的行為。唯一的一點是您無法克服 cmdlet 命令的固有功能。讓我們來看一個例子。

此範例可能不是您想要在現實生活中使用的內容,但它將向您展示從根本上更改 cmdlet 行為是多麼容易。如果您在 PowerShell 中輸入Get-TimeZone cmdlet ,您將看到您的電腦目前設定使用的時區名稱。您可以在下圖中看到這個範例。

如何使用 PowerShell 預設參數來變更命令行為

現在,我們變更此 cmdlet,使其不顯示系統配置使用的時區,而是顯示可用時區。為此,我們需要使用Get-Help cmdlet和Get-TimeZone cmdlet 的 cmdlet 語法。您可以在下面看到 cmdlet 的語法。

如何使用 PowerShell 預設參數來變更命令行為

此語法包含一個名為ListAvailable 的參數。輸入以下命令:

$PSDefaultParameterValues.Add(“Get-TimeZone:ListAvailable”,$True)

指令的第一部分只是告訴 PowerShell 您想要在雜湊表中新增一個值,就像我們在上一節中對美國州縮寫範例所做的那樣。該哈希表包含一個鍵/值對。在本例中,鍵是 cmdlet 名稱 (Get-TimeZone),後面跟著逗號和要設定的參數的名稱。在本例中,參數名稱為 ListAvailable。此 cmdlet 的第二部分是您要指派給參數的值。這是$True。 ListAvailable 參數通常不需要值,因此指定$True是告訴 PowerShell 使用此參數而不為其賦值的方式。

如果您查看下圖,您將看到執行 Get-TimeZone cmdlet 時會發生什麼。

如何使用 PowerShell 預設參數來變更命令行為

要記住的事情

最重要的是要了解,為 PowerShell 預設參數添加新值是為了更改 cmdlet 的預設行為,而不是刪除 cmdlet 的功能。即使您將 Get-TimeZone cmdlet 變更為顯示可用時區而不是顯示目前時區也是如此。如果您查看更多,仍然可以顯示當前時區資訊。

您需要知道的另一件事是可以刪除自訂預設參數。若要刪除單一項目,請使用指令$PSDefaultParameterValues.Remove,後面接著要刪除的項目的名稱。例如:

$PSDefaultParameterValues.Remove(“Get-TimeZone:ListAvailable”)

相反,您可以使用以下命令刪除哈希表的全部內容:

$PSDefaultParameterValues.Clear();

您可以在下面查看這兩種技術的範例:

如何使用 PowerShell 預設參數來變更命令行為

您可以刪除整個雜湊表或刪除單一條目。

您不經常更改 cmdlet 命令的預設行為,但當您需要時,您已經知道如何更改它。

祝您成功!

看更多:


如何在 Windows 中變更無線網路介面卡的首選頻段

如何在 Windows 中變更無線網路介面卡的首選頻段

本指南將向您展示如何變更 Windows 7、Windows 8 和 Windows 10 中無線網路介面卡預設使用的首選頻段(至 5GHz 或 2.4GHz)。

什麼是處理器親和性?如何在 Windows 10 上設定處理器關聯性

什麼是處理器親和性?如何在 Windows 10 上設定處理器關聯性

但是,可以將程式設定為僅使用 1 個或 2 個核心而不是所有核心。在這篇文章中,Quantrimang.com 將解釋什麼是處理器關聯性以及如何在 Windows 10 上設定處理器關聯性。

應避免使用隱私保護最差的 VPN

應避免使用隱私保護最差的 VPN

VPN 技術的日益普及引發了各種範圍、方法和大膽程度各異的詐騙。

如何在 Windows 10 上遠端鎖定電腦

如何在 Windows 10 上遠端鎖定電腦

Windows 10 有一個巧妙的功能,不僅可以讓您追蹤您的設備,還可以遠端鎖定它。

如何使用 SpyHunter 刪除間諜軟體並防止鍵盤記錄程序

如何使用 SpyHunter 刪除間諜軟體並防止鍵盤記錄程序

SpyHunter 是一款搜尋並銷毀電腦上的惡意軟體、間諜軟體和反鍵盤記錄程式的軟體。

嘗試 Windows 10 上的新硬碟容量分析工具“磁碟使用情況”

嘗試 Windows 10 上的新硬碟容量分析工具“磁碟使用情況”

磁碟使用情況位於C:\Windows\System32\diskusage.exe,輸入diskusage /?時會顯示使用說明。該實用程式可以掃描整個磁碟機或指定資料夾並報告每個資料夾的使用量。

如何在Windows 10/11上安裝月光騎士主題

如何在Windows 10/11上安裝月光騎士主題

月光騎士主題套裝品質非常高,值得您立即安裝到您的電腦上。

使用「執行」命令快速開啟 Windows 應用程式的說明

使用「執行」命令快速開啟 Windows 應用程式的說明

當我們需要在Windows中快速開啟應用程式時,我們經常使用鍵盤快捷鍵。然而很少人知道還有一種方法,那就是使用Run指令。運行中有很多命令可以在 Windows 中打開不同的應用程序,但最常見的是下面 5 個打開應用程式的命令。請參考。

您的 Windows 10 電腦有病毒,修復方法如下

您的 Windows 10 電腦有病毒,修復方法如下

當惡意程式碼自行安裝到您的電腦上時,它們可以快速控制您的電腦並導致極其嚴重的錯誤。即使您下載和安裝的防毒軟體有時也可能是假冒軟體,這可能會損害您的電腦。

使用 Ubuntu Live USB 從 Windows PC 移除病毒

使用 Ubuntu Live USB 從 Windows PC 移除病毒

您的 Windows 電腦感染了病毒,或更糟的是,您甚至無法啟動它。如果您擁有 Ubuntu Live USB 或 CD,則可以使用它來清理您的 PC 並嘗試還原 Windows。