如何在Windows中批量重命名多个文件

有一大堆您想重命名的文件,但又不想一个个地遍历它们吗? Windows提供了更多的方法来实现此目的。

您可以使用Windows资源管理器轻松地重命名一个或多个文件,但可以使用命令提示符或PowerShell进行更多操作。添加第三方重命名实用程序,可能性是无限的。让我们看一下每个选项及其运作方式。

重命名Windows资源管理器中的多个文件

Windows资源管理器(在Windows 10中称为文件资源管理器)功能异常强大。您可能知道如何重命名单个文件,但让我们从基础开始,因为高级技巧是基于这些技巧的。

如果您使用的是鼠标,则有至少三种方法可以选择文件名并将其重命名。你可以:

  • 单击以选中文件,然后在主菜单上单击“重命名”按钮。
  • 单击以选中文件,然后单击所选文件的名称。
  • 右键单击该文件,然后在上下文菜单上选择“重命名”。

而且,如果您更喜欢使用键盘,则只需使用箭头键(或开始输入文件名)来选择文件,然后按F2键来选择文件名。

选择文件名后,您会注意到仅选择了文件名本身,而不是扩展名,您可以输入新的文件名。

输入完文件名后,您可以按Enter键(或单击其他位置)以保存新名称。

事情变得有趣了:您还可以按Tab键自动选择文件夹中的下一个文件名,以便立即开始为其输入新名称。继续按Tab键并以这种方式键入名称,如果您愿意,可以轻松地重命名文件夹中的所有文件。

如果您要重命名同一文件夹中的一堆文件,而这些文件又不需要完全不同的名称,则Windows提供了一种更简便的方法来批量重命名这些文件。首先选择一堆文件-您可以按住Ctrl键一次选择多个文件,或者按住Shift键选择一系列文件。选择文件后,请使用重命名命令之一-主页菜单上的按钮,上下文菜单上的命令,或仅按F2键。您会看到所有文件都保持选中状态,但是该组中的第一个文件的名称突出显示,因此您可以键入一个新名称。

输入文件的新名称,然后按Enter或在窗口中的其他位置单击。所有选择的文件都使用您刚刚键入的名称进行重命名,并在括号中附加一个数字以区分它们。

从命令提示符重命名多个文件

如果您需要的功率更多,则可以使用 改名 或者 ren 命令提示符窗口中的命令添加到一个或多个文件。该命令接受通配符,例如*和?用于匹配多个文件,如果您只想重命名包含许多文件的文件夹中的某些文件,这将很有帮助。

在所需位置打开命令提示符窗口的最快方法是首先在文件资源管理器中打开该文件夹。在“文件”菜单上,指向“打开命令提示符”,然后选择“打开命令提示符”。

要重命名单个文件,可以使用以下命令语法:

current_filename.ext“” new_filename.ext“

如果文件名包含空格,则引号很重要。如果没有,您将不需要引号。因此,例如,要将文件从“ wordfile(1).docx”重命名为“ my word file(01).docx”,则可以使用以下命令:

ren“ wordfile(1).docx”“我的word文件(01).docx”

自从 ren 该命令可以解决扩展名,也可以使用它一次更改多个文件的扩展名。举例来说,假设您要选择.txt文件,然后将其转换为.html文件。您可以将以下命令与*通配符(基本上告诉Windows任何长度的文本都应视为匹配项)一起使用:

任* .txt * .html

当我们讨论通配符时,您还可以使用?做一些有趣的事情。通配符,用于代表任何单个字符。举例来说,假设您有一堆.html文件,但您希望将它们转换成.htm文件。您可以使用以下命令进行更改:

任* .html *。???

这告诉Windows重命名所有带有.html扩展名的文件,以使用相同的文件名和相同的文件扩展名的前三个字母,这最终将文件夹中所有扩展名中的“ l”删除。

有关的:如何在Windows上编写批处理脚本

如果您想通过将其他命令和条件编织到事物中来构建更复杂的命令(甚至是批处理脚本),这只会开始解决您可以使用的各种命令行向导。如果您有兴趣,在Lagmonster论坛上的人们可以就该主题撰写出色的文章。

使用PowerShell重命名多个文件

PowerShell为在命令行环境中重命名文件提供了更大的灵活性。使用PowerShell,您可以将一个命令(在PowerShell术语中称为“ commandlet”)的输出通过管道传递到另一个命令,就像在Linux和其他类似UNIX的系统上一样。您需要的两个重要命令是 迪尔,其中列出了当前目录中的文件,以及 重命名项,它重命名一个项目(在这种情况下为文件)。将Dir的输出通过管道传递给Rename-Item,您就可以开展业务。

在所需位置打开PowerShell窗口的最快方法是首先在“文件资源管理器”中打开文件夹。在“文件”菜单上,指向“打开Windows PowerShell”,然后选择“打开Windows Powershell”。

首先,让我们看看重命名单个文件。为此,您将使用以下语法:

重命名项目“current_filename.ext“” new_filename.ext“

因此,例如,要将文件从“ wordfile.docx”重命名为“ My Word File.docx”,可以使用以下命令行开关:

重命名项目“ wordfile.docx”“我的Word File.docx”

很简单。但是,PowerShell中的真正功能来自将命令行开关组合在一起的能力以及该命令支持的一些条件开关。 重命名项目 命令行开关。举例来说,我们有一堆名为“ wordfile(1).docx”,“ wordfile(2).docx”的文件,依此类推。

假设我们要用下划线替换这些文件名中的空格,以便文件名不包含空格。我们可以使用以下命令行开关:

目录|重命名项目-NewName {$ _。name-替换“”,“ _”}

目录 该Commandlet的一部分列出了文件夹中的所有文件,并将它们通过管道传输(即 | 符号) 重命名项目 命令行开关。这 $ _。name 部分代表要通过管道传输的每个文件。这 -代替 开关表示将要进行更换。 Commandlet的其余部分仅表示任何空格( " " )应该用下划线( "_" ).

现在,我们的文件看起来像我们想要的那样。

有关的:极客学校:学习如何使用PowerShell自动化Windows

如您所料,PowerShell在命名文件方面提供了强大的功能,我们只是在这里进行了介绍。例如, 重命名项目 Commandlet还提供了诸如 -递归 可以将Commandlet应用于文件夹中的文件以及该文件夹中嵌套的所有文件夹的开关, -力量 可以强制重命名已锁定或不可用的文件的开关,甚至 -如果 该开关描述了如果执行了Commandlet(实际上未执行)将会发生的情况。而且,当然,您还可以构建更复杂的Commandlet结构,甚至包括 如果/之后 逻辑。您可以从我们的Geek School指南中全面了解有关PowerShell的更多信息,并了解有关以下方面的更多信息: 重命名项目 Microsoft TechNet库中的命令集。

使用第三方应用程序重命名多个文件

有关的:批量重命名工具是一种轻巧但功能强大的文件重命名工具

如果您需要一种强大的方法来一次重命名多个文件,而又不习惯掌握命令提示符或PowerShell命令,则始终可以使用第三方实用程序。我们那里有无数的重命名应用程序-其中很多都是很好的-但我们有两个明确的偏爱:批量重命名实用程序和AdvancedRenamer。

如何使用批量重命名实用程序

Bulk Rename Utility的界面杂乱且有些令人生畏,但它却提供了通常只能使用正则表达式和复杂的命令行选项才能获得的大量选项。

安装该工具后,启动它,导航到要重命名的文件,然后选择它们。

在许多可用面板中的一个或多个面板中的更改选项,您会看到更改的预览显示在列出文件的“新名称”列中。在此示例中,我对四个面板进行了更改,这些面板现在以橙色突出显示,因此更容易分辨出我所做的更改。我已经告诉实用程序将所有文件的名称更改为“ Word文件”,并使用标题大小写。我以YMD格式附加了创建文件的日期。而且我还添加了一个自动文件号,该文件号出现在文件名的末尾,从1开始,以1为增量,并以下划线与文件名分开。而且,这只是批量重命名实用程序的一小部分。当您对新文件名的外观感到满意时,只需单击“重命名”按钮。

如您所见,该实用程序轻松处理了我的简单请求。

如何使用AdvancedRenamer

我们另一个最喜欢的重命名工具AdvancedRenamer也提供了大量的重命名方法,但是与其将它们全部显示为界面中的面板,它要求您使用一种非常简单但功能强大的语法来创建重命名方法。学习起来并不难,他们也得到了很好的支持,并附有示例。该工具的界面友好得多,并支持设置高级批处理作业,因此您可以组合多种重命名方法并将其应用于大量文件。您还可以保存创建的重命名方法,以备后用。

在下面的示例中,我使用以下语法创建了重命名方法:

Word文件____()

这告诉AdvancedRenamer将所有文件命名为“ Word文件”,并以YMD格式添加创建日期(用下划线分隔每个部分)。它还在括号中添加一个增量文件号,并用一个额外的下划线分隔。

如您所见,我的文件已经按照我想要的方式进行了重命名。 AdvancedRenamer的学习曲线比批量文件重命名器更陡峭,但是这样做的好处是您可以更好地控制文件名。

在Windows中,还有其他方法可以重命名文件吗?请务必给我们留下评论,并让我们知道。


$config[zx-auto] not found$config[zx-overlay] not found