將項目的值變更成命令中所指定的值。

語法

Set-Item [-LiteralPath] <string[]> [[-Value] <Object>] [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

Set-Item [-Path] <string[]> [[-Value] <Object>] [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

描述

Set-Item Cmdlet 會將項目 (例如變數或登錄機碼) 的值變更成命令中所指定的值。

參數

-Credential <PSCredential>

指定具有執行此動作之權限的使用者帳戶。預設為目前使用者。

請輸入使用者名稱,例如 "User01" 或 "Domain01\User01",或是輸入 PSCredential 物件,例如由 Get-Credential Cmdlet 所產生的物件。如果輸入使用者名稱,將會提示您提供密碼。

所有隨 Windows PowerShell 安裝的提供者都不支援此參數。

必要?

false

位置?

named

預設值

接受管線輸入?

true (ByPropertyName)

接受萬用字元?

false

-Exclude <string[]>

忽略指定的項目。此參數的值用於限定 Path 參數。輸入路徑元素或模式,例如 "*.txt"。允許使用萬用字元。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

-Filter <string>

指定以提供者的格式或語言表示的篩選器。此參數的值用於限定 Path 參數。篩選器的語法 (包括萬用字元的用法) 依提供者而定。篩選器比其他參數更有效率,因為提供者會在擷取物件時套用篩選器,而非等到 Windows PowerShell 擷取物件後才進行篩選。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

-Force

允許此 Cmdlet 設定無法以其他方式變更的項目,例如唯讀別名或變數。此 Cmdlet 無法變更常數別名或變數。實作因提供者而異。如需詳細資訊,請參閱 about_Providers。即便使用 Force 參數,此 Cmdlet 也無法覆寫安全性限制。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

-Include <string[]>

只變更指定的項目。此參數的值用於限定 Path 參數。輸入路徑元素或模式,例如 "*.txt"。允許使用萬用字元。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

-LiteralPath <string[]>

指定新項目所在位置的路徑。LiteralPath 與 Path 不同,係取用實際輸入的內容做為參數值。任何字元均不被解譯成萬用字元。如果路徑中包含逸出字元,請將其置於單引號內。單引號係告訴 Windows PowerShell 不要將任何字元解譯成逸出序列。

必要?

true

位置?

1

預設值

接受管線輸入?

true (ByPropertyName)

接受萬用字元?

false

-PassThru

會將代表項目的物件傳遞給管線。根據預設,此 Cmdlet 不會產生任何輸出。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

-Path <string[]>

指定新項目所在位置的路徑。允許使用萬用字元。

必要?

true

位置?

1

預設值

接受管線輸入?

true (ByPropertyName)

接受萬用字元?

false

-Value <Object>

指定項目的新值。

必要?

false

位置?

2

預設值

接受管線輸入?

true (ByValue, ByPropertyName)

接受萬用字元?

false

-Confirm

在執行命令前先提示確認。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

-WhatIf

說明執行命令時將會發生何種情況,但不會實際執行命令。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

-UseTransaction

將命令加入現用交易中。此參數只有當交易進行中時才有效。如需詳細資訊,請參閱 about_Transactions。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

<CommonParameters>

這個 Cmdlet 支援一般參數:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。如需詳細資訊,請參閱 about_Commonparameters.

輸入和輸出

輸入型別是可經由管道輸出至 Cmdlet 的物件型別。傳回型別則是 Cmdlet 所傳回的物件型別。

輸入

System.Object

您可經由管道將代表項目新值的物件輸出至 Set-Item。

輸出

None,或是代表新項目或已變更之項目的物件。

當您使用 Passthru 參數時,Set-Item 會產生可代表此項目的物件。否則,這個 Cmdlet 不會產生任何輸出。

附註

您也可以利用內建的別名 "si" 來參照 Set-Item。如需詳細資訊,請參閱 about_Aliases。

Windows PowerShell FileSystem 提供者不支援 Set-Item Cmdlet。若要變更位在檔案系統之項目的值,請使用 Set-Content。

在登錄磁碟機中 (即 HKLM: 和 HKCU:),Set-Item 會變更登錄機碼之 (預設) 值的資料。若要建立和變更登錄機碼的名稱,請使用 New-Item 和 Rename-Item。若要變更登錄值中的名稱和資料,請使用 New-ItemProperty、Set-ItemProperty 和 Rename-ItemProperty。

Set-Item Cmdlet 設計的用意是要操作任一提供者所公開的資料。若要列出可在工作階段中使用的提供者,請輸入 "Get-PsProvider"。如需詳細資訊,請參閱 about_Providers。

範例 1

C:\PS>set-item -path alias:np -value c:\windows\notepad.exe

描述
-----------
這個命令會為「記事本」建立別名 "np"。






範例 2

C:\PS>set-item -path env:UserRole -value Administrator

描述
-----------
這個命令會使用 Set-Item Cmdlet,將 "UserRole" 環境變數的值變更成 "Administrator"。






範例 3

C:\PS>set-item -path function:prompt -value {'PS '+ $(Get-Date -format t) + " " + $(Get-Location) + '> '}

描述
-----------
此命令使用 Set-Item Cmdlet 將 "prompt" 函數變更為先顯示時間再顯示路徑。






範例 4

C:\PS>set-item -path function:prompt -options "AllScope,ReadOnly"

描述
-----------
此命令為 "prompt" 函數設定 AllScope 和 ReadOnly 選項。這個命令會使用 Set-Item Cmdlet 的 Options 動態參數。只有當您搭配 Alias 或 Function 提供者使用 Set-Item 時,才可以在其中使用 Options 參數。






請參閱




目錄