Rename-Item
重命名 PowerShell 提供程序命名空间中的项。
语法
Rename-Item
[-Path] <String>
[-NewName] <String>
[-Force]
[-PassThru]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[-UseTransaction]
[<CommonParameters>]
Rename-Item
-LiteralPath <String>
[-NewName] <String>
[-Force]
[-PassThru]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[-UseTransaction]
[<CommonParameters>]
说明
cmdlet Rename-Item
更改指定项的名称。 此 cmdlet 不影响正被重命名的项的内容。
不能使用 Rename-Item
移动项,例如将路径与新名称一起指定。 若要移动和重命名项,请使用 Move-Item
cmdlet。
示例
示例 1:重命名文件
此命令将文件 daily_file.txt
重命名为 monday_file.txt
。
Rename-Item -Path "c:\logfiles\daily_file.txt" -NewName "monday_file.txt"
示例 2:重命名和移动项
不能同时使用 Rename-Item
来重命名和移动项。 具体而言,不能为 NewName 参数的值提供路径,除非路径与 Path 参数中指定的路径相同。 在其他情况下,仅允许输入新名称。
此示例尝试将当前目录中的文件重命名 project.txt
为 old-project.txt
目录中的 D:\Archive
。 结果将在输出中显示错误。
Rename-Item -Path "project.txt" -NewName "d:\archive\old-project.txt"
Rename-Item : can't 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], PS> Move-Item -Path "project.txt" -De
stination "d:\archive\old-project.txt"
示例 3:重命名注册表项
此示例将注册表项从 Advertising 重命名为 Marketing。 当该命令完成时,将重命名该注册表项,但该注册表项中的注册表条目保持不变。
Rename-Item -Path "HKLM:\Software\MyCompany\Advertising" -NewName "Marketing"
示例 4:重命名多个文件
此示例将当前目录中的所有 *.txt
文件重命名为 *.log
。
Get-ChildItem *.txt
Directory: C:\temp\files
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 10/3/2019 7:47 AM 2918 Friday.TXT
-a---- 10/3/2019 7:46 AM 2918 Monday.Txt
-a---- 10/3/2019 7:47 AM 2918 Wednesday.txt
Get-ChildItem *.txt | Rename-Item -NewName { $_.Name -replace '.txt','.log' }
Get-ChildItem *.log
Directory: C:\temp\files
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 10/3/2019 7:47 AM 2918 Friday.log
-a---- 10/3/2019 7:46 AM 2918 Monday.log
-a---- 10/3/2019 7:47 AM 2918 Wednesday.log
cmdlet Get-ChildItem
获取当前文件夹中具有 .txt
文件扩展名的所有文件,然后将这些文件通过管道传递给 Rename-Item
。 NewName 的值是在将值提交到 NewName 参数之前运行的脚本块。
在脚本块中 $_
,自动变量表示通过管道传入命令的每个文件对象。 脚本块使用 -replace
运算符将每个文件的 .log
文件扩展名替换为 。 请注意,使用 运算符进行 -replace
匹配不区分大小写。
参数
-Confirm
提示你在运行 cmdlet 之前进行确认。
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Credential
注意
随 PowerShell 一起安装的任何提供程序都不支持此参数。 若要模拟其他用户,或在运行此 cmdlet 时提升凭据,请使用 Invoke-Command。
Type: | PSCredential |
Position: | Named |
Default value: | Current user |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Force
强制 cmdlet 重命名无法更改的项,例如隐藏或只读文件,或者只读别名或变量。 cmdlet 无法更改常量别名或变量。 不同提供程序有不同的实现。 有关详细信息,请参阅 about_Providers。
即使使用 Force 参数,cmdlet 也无法覆盖安全限制。
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-LiteralPath
指定一个或多个位置的路径。 LiteralPath 的值完全按照键入的方式使用。 不会将任何字符解释为通配符。 如果路径包括转义符,请将其括在单引号中。 单引号告知 PowerShell 不要将任何字符解释为转义序列。
有关详细信息,请参阅 about_Quoting_Rules。
Type: | String |
Aliases: | PSPath |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-NewName
指定项的新名称。 请仅输入名称,而不是路径加名称。 如果输入的路径不同于 Path 参数中指定的路径, Rename-Item
则会生成错误。
若要重命名和移动项,请使用 Move-Item
。
不能在 NewName 参数的值中使用通配符。 若要指定多个文件的名称,请在正则表达式中使用 Replace 运算符。 有关 Replace 运算符的详细信息,请参阅 about_Comparison_Operators。
Type: | String |
Position: | 1 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-PassThru
返回一个 对象,该对象代表管道的项。 默认情况下,此 cmdlet 将不产生任何输出。
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Path
指定要重命名的项的路径。
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-UseTransaction
在活动事务中使用该命令。 仅当正在执行事务时,此参数才有效。 有关详细信息,请参阅 about_Transactions。
Type: | SwitchParameter |
Aliases: | usetx |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
显示运行该 cmdlet 时会发生什么情况。 此 cmdlet 未运行。
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
输入
可以通过管道将包含路径的字符串传递给此 cmdlet。
输出
None or an object that represents the renamed item.
如果指定 PassThru 参数,此 cmdlet 将生成表示重命名项的对象。 否则,此 cmdlet 将不生成任何输出。
备注
Rename-Item
旨在处理由任何提供程序公开的数据。 若要列出会话中可用的提供程序,请键入 Get-PsProvider
。 有关详细信息,请参阅 about_Providers。