重新命名 Windows PowerShell 提供者命名空間中的項目。

語法

Rename-Item [-路徑] <string> [-NewName] <string> [-Credential <PSCredential>] [-Force] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

描述

Rename-Item Cmdlet 變更指定之項目的名稱。這個 Cmdlet 不會影響要重新命名之項目的內容。

您無法使用 Rename-Item 移動項目,例如隨新名稱指定路徑的方法。若要移動並重新命名項目,請使用 Move-Item Cmdlet。

參數

-Credential <PSCredential>

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

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

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

必要?

false

位置?

named

預設值

接受管線輸入?

true (ByPropertyName)

接受萬用字元?

false

-Force

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

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

-NewName <string>

指定項目的新名稱。只能夠輸入名稱,不能輸入路徑與名稱。如果輸入的路徑與於 Path 參數中指定的路徑不同,則 Rename-Item 會產生錯誤。若要重新命名並移動項目,請使用 Move-Item Cmdlet。

您無法在 NewName 的值中使用萬用字元。若要指定多個檔案的名稱,請在規則運算式中使用 [取代] 運算子。如需 [取代] 運算子的詳細資訊,請輸入 "Get-Help about_Comparison_Operators"。如需示範,請參閱範例。

必要?

true

位置?

2

預設值

接受管線輸入?

true (ByPropertyName)

接受萬用字元?

false

-PassThru

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

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

-Path <string>

指定要重新命名的項目所在路徑。

必要?

true

位置?

1

預設值

接受管線輸入?

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.String

您可經由管道將包含路徑的字串輸出至 Rename-Item。

輸出

None,或是代表已重新命名之項目的物件。

當您使用 Passthru 參數時,Rename-Item 會產生可代表已重新命名之項目的物件。否則,這個 Cmdlet 不會產生任何輸出。

附註

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

範例 1

C:\PS>rename-item -path c:\logfiles\daily_file.txt -newname monday_file.txt

描述
-----------
這個命令會將檔案 daily_file.txt 重新命名成 monday_file.txt。






範例 2

C:\PS>rename-item -path project.txt -newname d:\archive\old-project.txt

Rename-Item : Cannot rename because the target specified represents a path or device name.
At line:1 char:12
+ rename-item <<<<  -path project.txt -newname d:\archive\old-project.txt
    + CategoryInfo          : InvalidArgument: (:) [Rename-Item], PSArgumentException
    + FullyQualifiedErrorId : Argument,Microsoft.PowerShell.Commands.RenameItemCommand


C:\PS> move-item -path project.txt -destination d:\archive\old-project.txt
# Command succeeds

描述
-----------
這個範例示範您無法使用 Rename-Item Cmdlet 同時重新命名與移動項目。具體而言,除非路徑與 Path 參數中指定的路徑相同,否則您無法為 NewName 參數的值提供值。否則,只允許新名稱。

第一個命令使用 Rename-Item Cmdlet 將目前目錄中 project.txt 的檔案重新命名為 D:\Archive 目錄中的 old-project.txt。結果為輸出中顯示的錯誤。

第二個命令顯示使用 Move-Item Cmdlet 以移動與重新命名檔案的正確方法。Move-Item Cmdlet 可以讓您在 Destination 參數的值中,同時指定新路徑與新名稱。






範例 3

C:\PS>rename-item HKLM:\Software\MyCompany\Advertising -NewName Marketing

描述
-----------
這個命令使用 Rename-Item Cmdlet 將登錄機碼由 Advertising 重新命名為 Marketing。命令完成時,會重新命名機碼,但是機碼中的登錄項目不會變更。






範例 4

C:\PS>get-childItem *.txt | rename-item -newname { $_.name -replace '\.txt','.log' }

描述
-----------
這個範例示範雖然 NewName 參數不接受萬用字元,仍然可以使用 [取代] 運算子重新命名多個檔案的方法。

這個命令會將目前目錄中的所有 .txt 檔案重新命名為 .log。

該命令使用 Get-ChildItem Cmdlet 取得目前目錄中副檔名為 .txt 的所有檔案。然後,它會使用管線運算子 (|) 將產生的檔案傳送給 Rename-Item Cmdlet。

在 Rename-Item 命令中,NewName 參數的值在提交給 NewName 參數之前,該值為執行的指令碼區塊。

在指令碼區塊中,因為自動變數 $_ 是透過管線傳遞的,所以 $_ 代表每一個檔案物件。這個命令會使用點格式 (.) 取得每一個檔案物件的 Name 屬性。[取代] 運算子會以取代 ".log" 每一個副檔名為 ".txt" 的檔案。

因為 [取代] 運算子適用於規則運算式,所以 "txt" 之前的點會解譯為符合任一字元。為了確保只符合 (.),會使用反斜線字元 (\) 逸出。".log" 中不需要反斜線字元,因為它是字串,不是規則運算式。






請參閱




目錄