由于在After Effects中的一个错误,我得到的单帧输出与4个数字在这样的结尾命名:
Test.jpg0001 Another.jpg0345 AndAnother.jpg0033
是否有一个批处理脚本,我可以写在Windows文件夹中运行,以删除最后4个字符,如果文件不以.jpg结尾? 所以我可以在添加新文件时继续运行脚本,但不会影响已经更正的文件。
我的天啊,不需要任何脚本。 一个简单的重命名命令就是你所需要的。
这将为包含.jpg
任何文件名将扩展名设置为.jpg
。
ren *.jpg* *.jpg
以上方法并不完美,因为它会错误地将test.jpg.txt
重命名为test.jpg.jpg
。 它也会将test2.jpgXYZ
这样的文件重命名为test2.jpg
。 我怀疑这些限制不会成为问题。
如果您希望更具选择性,只需重命名具有以.jpg
开头的扩展名的文件(忽略名称后带有.jpg
文件,然后是其他扩展名),则可以使用FINDSTR正则表达式来过滤文件:
for /f "eol=: delims=" %F in ('dir /b *.jpg*^|findstr /re "\.jpg[^.][^.]*"') do ren "%F" *.jpg
如果您想要更具选择性,只需重命名以.jpg
结尾的文件,然后再输入1或更多数字,则:
for /f "eol=: delims=" %F in ('dir /b *.jpg*^|findstr /re "\.jpg[0-9][0-9]*"') do ren "%F" *.jpg
如果在批处理文件中使用FOR / F语句,则需要将百分比加倍( %%F
而不是%F
)。
这里是一个VB脚本,将搜索所有以JPG开头的扩展名,如果长度超过3个字符,则将文件重命名为仅以jpg结尾。 创建一个测试目录,就像我做了几个文件一样,并尝试一下。 它在代码中有一个硬编码的目录,在运行之前你必须改变它(除非你的目录被称为c:\ testdat)。 注意用斜线(懒惰编程)结束文件夹名称:
set fs = createobject("Scripting.Filesystemobject") dirWithFiles = "C:\TestDat\" ' End with a slash set folder = fs.getfolder(dirWithFiles) set filescollection = folder.files for each file in filescollection oldname = dirWithFiles & file.name basename = fs.getbasename(file.name) extension = fs.getExtensionName(file.name) if ucase(mid(extension,1,3)) = "JPG" then if len(extension) > 3 then newname = dirWithFiles & basename & ".jpg" 'msgbox "Rename " & oldname & " to " & newname fs.movefile oldname,newname end if end if next
将其复制到以.vbs结尾的文件(我称为我的jpgrename.vbs),修改c:\ testdat \目录名称并将其放在桌面上。 双击它(在Windows下),它应该运行。 这里是前后图像: