我在一个文件夹中有多个同名但扩展名不同的文件。这些文件原本都是 .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 files
。Use current ("look in") directory
Browse
最后按此键
Start batch
开始批量重命名。
请注意,作为一项安全措施,默认情况下,IrfanView 将在输出文件夹中以新名称复制文件,而不是仅仅重命名现有文件。要重命名原始文件,请转到Options
并Batch rename settings
更改Copy original/input files to output directory
为Move original/input files to output directory
。