由于After Effects中的一个错误,我得到的单帧输出结尾有4个数字,如下所示:
Test.jpg0001
Another.jpg0345
AndAnother.jpg0033
如果文件没有以.jpg结尾,是否有可以编写的批处理脚本在Windows文件夹中运行以删除最后4个字符?因此,当我添加新文件时,我可以继续运行脚本,但它不会影响已经更正的文件。
答案 0 :(得分:1)
这是一个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下),它应该运行。这是图像之前和之后:
答案 1 :(得分:1)
我的天哪,不需要任何形式的剧本。您只需要一个简单的重命名命令。
对于包含.jpg
的任何文件名,这会将扩展名设置为.jpg
。
ren *.jpg* *.jpg
上述内容并不完美,因为它会不正确地将test.jpg.txt
重命名为test.jpg.jpg
。它还会将test2.jpgXYZ
之类的文件(.jpg
之后的数字除外)重命名为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
)。