如何使用 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 10 上的天氣應用程式中以 °C 或 °F 為單位顯示溫度

如何在 Windows 10 上的天氣應用程式中以 °C 或 °F 為單位顯示溫度

可以輕鬆地將天氣預報設定為顯示世界任何地方的任何城市或位置,並以攝氏度 (°C) 為單位顯示溫度。可以在 Windows 10 上的天氣應用程式和工作列上的「新聞和興趣」小工具中調整此設定。

學習駭客技能的熱門網站

學習駭客技能的熱門網站

說到駭客,也許我們首先想到的刻板印象就是大學生或電腦科學領域的專家。

如何在 Windows 10 中建立和使用 Hyper-V 檢查點

如何在 Windows 10 中建立和使用 Hyper-V 檢查點

檢查點是 Hyper-V 的強大功能,可輕鬆撤銷虛擬機器上的任何變更。

3 個在 Windows PC 上免費讀取 DMG 檔案副檔名的工具

3 個在 Windows PC 上免費讀取 DMG 檔案副檔名的工具

DMG 映像檔格式是用於在 Mac OS X 上分發軟體的最受歡迎的檔案儲存格式。無法在 Windows PC 電腦上讀取此檔案副檔名。但是,如果您想在 Windows PC 上讀取此檔案副檔名,您可以要求第三方應用程式的支援。

下載99+ Gucci壁紙,精美Gucci壁紙

下載99+ Gucci壁紙,精美Gucci壁紙

讓我們看看下面的一些 Gucci 桌布是否適合您的電腦桌布或手機桌布。

如何在 Windows 10 上的檔案總管導覽窗格中新增/刪除快速訪問

如何在 Windows 10 上的檔案總管導覽窗格中新增/刪除快速訪問

快速存取是存取您正在處理的文件和經常使用的資料夾的最短路線。這些是您經常造訪的資料夾和最近的文件。

Opera VPN 評測:簡單、快速且免費

Opera VPN 評測:簡單、快速且免費

也許您聽說過 Opera 網路瀏覽器附帶免費 VPN,或者您可能已經是 Opera 愛好者,只是想知道他們的 VPN 服務如何運作。

應如何以及為何停用 2.4GHz Wi-Fi 網路?

應如何以及為何停用 2.4GHz Wi-Fi 網路?

您應該考慮關閉家庭 Wi-Fi 網路上舊的 2.4GHz 頻段,並使用速度更快且不那麼「擁擠」的新 5GHz 頻段。我們透過下面的文章來了解一下吧。

如何在 Windows Defender 上啟用沙箱功能

如何在 Windows Defender 上啟用沙箱功能

Microsoft Windows Defender 的整合防毒引擎成為第一個能夠在沙箱環境中運作的防毒軟體。

什麼是 Screen Locker 勒索軟體?如何去除?

什麼是 Screen Locker 勒索軟體?如何去除?

Screen Locker 勒索軟體是一種勒索軟體,它會接管螢幕並阻止您使用裝置。此類勒索軟體呈上升趨勢,如果沒有足夠的相關信息,則很難將其刪除。