PowerShell Rename-Item
最后修改:2025 年 2 月 15 日
在本文中,我们将介绍 PowerShell 中的 Rename-Item
cmdlet。此 cmdlet 可重命名文件、目录和其他文件系统项。它对于文件管理任务至关重要。
Rename-Item 基础知识
Rename-Item
cmdlet 用于更改指定项的名称。它可以处理文件、文件夹、注册表项和其他项类型。此 cmdlet 不会移动或删除项,仅重命名它们。它需要项的路径和新名称作为参数。
Rename-Item 基本用法
使用 Rename-Item
的最简单方法是提供路径和新名称。此示例重命名单个文件。原始文件必须存在,并且新名称不得与现有项冲突。除非使用 -PassThru 参数,否则 cmdlet 不会产生输出。
Rename-Item -Path "C:\temp\oldfile.txt" -NewName "newfile.txt"
此命令将 C:\temp 目录中的 oldfile.txt 重命名为 newfile.txt。如果成功,则不会显示任何输出。使用 -PassThru 查看重命名后的项。
使用通配符重命名多个文件
您可以使用路径参数中的通配符来重命名多个文件。此示例将前缀添加到目录中的所有 .txt 文件。-WhatIf 参数可以在执行前预览更改。这对于批量操作非常有用。
Get-ChildItem "C:\temp\*.txt" | Rename-Item -NewName { "backup_" + $_.Name }
此命令将“backup_”前缀添加到 C:\temp 中的所有 .txt 文件。$_ 变量表示管道中的每个文件。该操作应用于所有匹配的文件。
带确认提示的重命名
为了安全起见,您可以在重命名之前添加一个确认提示。使用 -Confirm 参数启用交互式确认。这可以防止意外重命名。提示将在继续之前显示旧名称和新名称。
Rename-Item -Path "C:\temp\important.docx" -NewName "critical.docx" -Confirm
此命令在重命名 important.docx 之前会提示确认。用户必须输入“Y”继续,或输入“N”取消。这为重要文件增加了安全性。
重命名并强制覆盖
默认情况下,Rename-Item 不会覆盖现有文件。-Force 参数会覆盖此安全检查。请谨慎使用,因为它可能导致数据丢失。当您需要有意替换文件时,这很有用。
Rename-Item -Path "C:\temp\temp.log" -NewName "archive.log" -Force
此命令将 temp.log 重命名为 archive.log,即使 archive.log 已经存在。现有的 archive.log 文件将被覆盖。如果没有 -Force,如果 archive.log 存在,命令将失败。
重命名目录
Rename-Item 与目录的处理方式与文件相同。指定目录路径和新名称。目录必须存在,并且新名称必须可用。目录内的所有内容保持不变。
Rename-Item -Path "C:\projects\old_project" -NewName "new_project"
此命令将 old_project 目录重命名为 new_project。目录的路径会发生变化,但其中的所有文件都保持不变。目录重命名是即时的,不涉及数据移动。
使用正则表达式进行重命名
您可以使用正则表达式模式进行复杂的重命名操作。将 Get-ChildItem 与 Rename-Item 结合使用进行基于模式的重命名。此示例从文件名中删除数字。-replace 运算符处理正则表达式匹配。
Get-ChildItem "C:\temp\*.txt" | Rename-Item -NewName { $_.Name -replace '\d+','' } -WhatIf
此命令从 C:\temp 中的 .txt 文件名中删除所有数字。-WhatIf 会显示在不进行更改的情况下会发生什么。删除 -WhatIf 以执行。
重命名并保留扩展名
重命名文件时,通常需要保留扩展名。此示例演示了如何在保留扩展名的同时修改基本名称。 [System.IO.Path] 类方法有助于正确处理扩展名。
Get-ChildItem "C:\temp\*.jpg" | Rename-Item -NewName { "resized_" + $_.BaseName + $_.Extension }
此命令在保留扩展名的同时,将“resized_”前缀添加到所有 .jpg 文件。BaseName 属性包含不带扩展名的文件名。Extension 属性包含点和扩展名。
来源
在本文中,我们介绍了 PowerShell 中的 Rename-Item cmdlet。
作者
列出 所有 PowerShell 教程。