Rename-Item
重新命名 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-Helpabout_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。 |
輸出 |
無,或是代表已重新命名之項目的物件。 當您使用 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" 中不需要反斜線字元,因為它是字串,不是規則運算式。
請參閱
概念
about_Providers
Clear-Item
Invoke-Item
Move-Item
Rename-ItemProperty
Set-Item
New-Item
Remove-Item
Get-Item
Copy-Item