Rename-Item
重命名 Windows PowerShell 提供程序命名空间中的一个项。
语法
Rename-Item [-Path] <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 输入的一个 PSCredential 对象。如果键入用户名,则将提示您输入密码。
随同 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 同时重命名和移动项。具体来说,不能为 NewName 参数的值提供路径,除非该路径与 Path 参数中指定的路径相同。在其他情况下,仅允许输入新名称。
第一条命令使用 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 参数之前执行的脚本块。
在该脚本块中,$_ automatic 变量表示通过管道传递给该命令的各文件对象。该命令使用点格式 (.)获取各文件对象的 Name 属性。替换运算符会将各文件的“.txt”文件扩展名替换为“.log”。
因为替换运算符用于正则表达式,所以“txt”之前的点会被解释为匹配任何字符。为确保它仅匹配点 (.),将用反斜杠字符 (\) 对其进行转义。因为“.log”是字符串而不是正则表达式,所以它不需要反斜杠字符。
另请参阅
概念
about_providers
Clear-Item
Invoke-Item
Move-Item
Rename-ItemProperty
Set-Item
New-Item
Remove-Item
Get-Item
Copy-Item