1

由于 After Effects 中的错误,我得到单帧输出,最后有 4 个数字,命名如下:

Test.jpg0001
Another.jpg0345
AndAnother.jpg0033

如果文件不以 .jpg 结尾,我可以编写一个批处理脚本在 Windows 文件夹中运行以删除最后 4 个字符吗?因此,当我添加新文件时,我可以继续运行脚本,但不会影响已更正的文件。

4

2 回答 2

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 下)它应该运行。这是之前和之后的图像:

在此处输入图像描述

于 2013-02-19T21:31:18.167 回答
1

我的天哪,不需要任何类型的脚本。您只需要一个简单的重命名命令。

这会将扩展名设置.jpg为包含.jpg.

ren *.jpg* *.jpg

以上内容并不完美,因为它会不正确地重命名类似test.jpg.txtto 的内容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)。

于 2013-02-20T01:28:33.170 回答