如何重命名具有相同名称和不同扩展名的多个文件?

如何重命名具有相同名称和不同扩展名的多个文件?

截屏

我在一个文件夹中有多个同名但扩展名不同的文件。这些文件原本都是 .jpg 格式,只是名称不同。

例如:
1.j87
1.j88
1.j89

现在我必须将每个图像分别重命名为不同的名称和扩展名。

我发现,但我不知道如何使用这个脚本。有人可以帮忙吗?

答案1

我知道在您更改到 JPG 文件的目录后如何使用 Windows CMD shell 完成此操作。

将此脚本保存到 BAT 文件(例如renamer.bat或任何非保留命令)并从命令提示符执行它。

设置本地启用延迟扩展

设置/a 计数=0
对于/f“tokens = *”%% a在('dir / b / od * .jpg')中执行(

    任 %%a任意字符串!计数!.jpg
    设置/a count+=1

根据您的问题,听起来您还想将每个*.jpg文件重命名为不同于 的名称*.jpg,这会破坏文件关联并使图像难以打开。如果这是真的,那么将 Rename 行替换为:

任 %%a任意字符串!计数!.!计数!jpg

答案2

回应 Arjun 的评论 10/19 ~2100 UTC,您应该在与您的文件相同的子目录中的批处理文件中执行此脚本,它将重命名文件为一串随机数字.01.jpg 和后续数字,直到目录中的所有文件都处理完毕。这些目录中的所有文件(无论是否为 JPG)都将重命名为随机名称、连续数字和 .jpg 扩展名。

任何子目录都需要执行这些目录内的脚本。

setlocal enabledelayedexpansion
set /a count=0
for /f "tokens=*" %%a in ('dir /b /od *.*') do (
    ren %%a %random%!count!.jpg
    set /a count+=1
)

答案3

您找到的脚本会无条件地将当前目录中的所有项目重命名为 filename{sequence number from 1}.jpg。请记住,重命名或移动命令可能非常具有破坏性,尤其是当您不确切知道代码是什么时。

我修改了代码以使其更安全,如下所示:

Get-Item "2017-0~1.*" | ForEach-Object {

   $newName = $_.basename + $_.Extension.replace(".", "_") + ".jpg"
   Write-Host "rename-item" $_ $newName
   # rename-item $_ $newName
}

代码获取当前目录中名为“2017-0~.*”的项目。对于每个项目,通过在末尾附加扩展名“.jpg”来重命名该项目,同时将原始扩展名点和扩展名更改为下划线和扩展名,例如将“.001”更改为“_001”。在这种情况下,您可以知道原始文件名是什么。

注意,真正的动作是有注释的。

执行代码:

> cd c:\to\your\directory

C:\to\your\directory> powershell

PS C:\to\your\directory> 

粘贴代码

PS C:\to\your\directory> Get-Item "2017-0~1.*" | ForEach-Object {
>>
>>    $newName = $_.basename + $_.Extension.replace(".", "_") + ".jpg"
>>    Write-Host "rename-item" $_ $newName
>>    # rename-item $_ $newName
>> }
>>

PS C:\to\your\directory> exit

C:\to\your\directory>

答案4

如果您不习惯使用脚本,您可以使用优秀(且免费)的脚本重命名文件伊凡视界,只需按照以下步骤操作:

  • 转至File> Batch Conversion/Rename...

  • Work as选择中Batch rename

  • Batch rename settings默认模式更改为,image###因为image###.jpg您也想更改扩展名。这将命名文件为“image001.jpg”、“image002.jpg”等(如果该文件夹中有超过 999 张图像,请使用image####.jpg)。您可以使用按钮配置其他名称模式Options

  • 在右侧的资源管理器面板中选择All files (*.*)Type转到包含文件的文件夹,然后选择要重命名的文件并按下Add(或者Add all如果要重命名该文件夹中的所有文件,请按下)。

  • 按下选择文件所在的同一文件夹,或者如果要将重命名的文件移动到另一个文件夹,请使用 选择不同的文件夹Output directory for result filesUse current ("look in") directoryBrowse

  • 最后按此键Start batch开始批量重命名。

请注意,作为一项安全措施,默认情况下,IrfanView 将在输出文件夹中以新名称复制文件,而不是仅仅重命名现有文件。要重命名原始文件,请转到OptionsBatch rename settings更改Copy original/input files to output directoryMove original/input files to output directory

相关内容