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