如何使用 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 命令的預設行為,但當您需要時,您已經知道如何更改它。

祝您成功!

看更多:


什麼是惡意軟體 HackTool:Win32/Keygen?如何去除?

什麼是惡意軟體 HackTool:Win32/Keygen?如何去除?

您是否掃描過您的設備並發現它感染了 HackTool:Win32/Keygen?在您使用破解或金鑰產生器啟動進階軟體後,Windows Defender 可能會自動警告您有關此惡意軟體的存在。

在 Windows 10 上建立備份和還原點(Restore Point)的說明

在 Windows 10 上建立備份和還原點(Restore Point)的說明

探索如何在Windows 10上建立和管理還原點,這是一項有效的系統保護功能,可以讓您快速還原系統至先前狀態。

在 Windows 10 中開啟裝置管理員的 15 種方法

在 Windows 10 中開啟裝置管理員的 15 種方法

您可以使用以下 15 種方法輕鬆在 Windows 10 中開啟<strong>裝置管理員</strong>,包括使用命令、捷徑和搜尋。

Windows「顯示桌面」的 10 種超快速方法

Windows「顯示桌面」的 10 種超快速方法

很多人不知道如何快速顯示桌面,只好將各個視窗一一最小化。這種方法對於用戶來說非常耗時且令人沮喪。因此,本文將向您介紹Windows中快速顯示桌面的十種超快速方法。

如何使用 Windows Repair 修復 Windows 錯誤

如何使用 Windows Repair 修復 Windows 錯誤

Windows Repair 是一款有效的 Windows 錯誤修復工具,幫助使用者修復與 Internet Explorer、Windows Update 和其他重要程式相關的錯誤。

如何在 Windows 10 中開啟資料夾選項或檔案總管選項

如何在 Windows 10 中開啟資料夾選項或檔案總管選項

您可以使用檔案總管選項來變更檔案和資料夾的工作方式並控制顯示。掌握如何在 Windows 10 中開啟資料夾選項的多種方法。

有關在 Windows 10 上刪除使用者帳戶的 5 種方法的說明

有關在 Windows 10 上刪除使用者帳戶的 5 種方法的說明

刪除不使用的使用者帳戶可以顯著釋放記憶體空間,並讓您的電腦運行得更流暢。了解如何刪除 Windows 10 使用者帳戶的最佳方法。

如何使用Bootsect /nt60將VBC更新為BOOTMGR

如何使用Bootsect /nt60將VBC更新為BOOTMGR

使用 bootsect 命令能夠輕鬆修復磁碟區引導程式碼錯誤,確保系統正常啟動,避免 hal.dll 錯誤及其他啟動問題。

Windows 11 中的存檔應用程式功能是什麼?應該啟用還是停用它?

Windows 11 中的存檔應用程式功能是什麼?應該啟用還是停用它?

存檔應用程式是一項功能,可以自動卸載您很少使用的應用程序,同時保留其關聯的檔案和設定。了解如何有效利用 Windows 11 中的存檔應用程式功能。

如何在 Windows 10 上為 BlueStacks 5 啟用虛擬化 (VT)

如何在 Windows 10 上為 BlueStacks 5 啟用虛擬化 (VT)

要啟用虛擬化,您必須先進入 BIOS 並從 BIOS 設定中啟用虛擬化,這將顯著提升在 BlueStacks 5 上的效能和遊戲體驗。