请帮忙!
我需要使用 Windows 批处理脚本从文件名中删除时间戳和文件编号。谢谢!先感谢您!
旧文件名= CAM168-NOTSET.2013.10.01.18.45.45.882.jpg
新文件名= CAM168-NOTSET.jpg
请帮忙!
我需要使用 Windows 批处理脚本从文件名中删除时间戳和文件编号。谢谢!先感谢您!
旧文件名= CAM168-NOTSET.2013.10.01.18.45.45.882.jpg
新文件名= CAM168-NOTSET.jpg
@ECHO OFF
SETLOCAL
SET "fname=CAM168-NOTSET.2013.10.01.18.45.45.882.jpg"
FOR %%i IN ("%fname%") DO FOR /f "delims=." %%j IN ("%%i") DO ECHO REN "%%~i" "%%~j%%~xi"
GOTO :EOF
新名称仅ECHO
编辑。
如果通过“删除时间戳和文件号”,您的意思是删除第一个和最后一个点之间的所有内容,保留扩展名,那么您不需要批处理脚本。一个班轮就可以了。
此命令将重命名当前目录中的所有 .jpg 文件。它将支持最长为 50 的最终名称,不包括日期、数字和扩展名。如果您的姓名较长,请添加其他内容,如果您的姓名较短?
,您可以删除一些。?
for %F in (*.jpg) do @ren "%F" "??????????????????????????????????????????????????%~xF"
如果在批处理文件中使用该命令,则将百分比加倍。
in ()
您可以在子句中放置任何文件掩码或文件列表等。
如果您只是要重命名 .jpg 文件,那么您可以简单地使用:
ren *.jpg ??????????????????????????????????????????????????.jpg
请参阅Windows RENAME 命令如何解释通配符?有关为什么这样做的信息。
Lloyd 有一个有趣的解决方案,它只会重命名与模板匹配的文件
name.number.[number.]...ext
,表示为正则表达式。但它需要安装第三方可执行文件。使用名为 REPL.BAT的混合 JScript/批处理实用程序,使用纯脚本可以轻松实现相同的特异性。
假设 REPL.BAT 在您的当前目录中,或者更好的是,在您的 PATH 中的某个位置,那么以下内容将匹配与正则表达式模板匹配的所有文件:
for /f "eol=* delims=* tokens=1,2" %A in (`dir /b /a-d^|repl "(.*?)(\.\d+)+(\.\w+) a" "$&*$1$3"') do ren "%A" "%B"
如果在批处理脚本中使用,则将百分比加倍。
对这些输入文件使用重命名器(跨平台文件重命名器):
CAM168-NOTSET.2013.10.01.18.45.45.882.jpg
CAM169-NOTSET.2013.10.01.18.45.45.883.gif
CAM170-NOTSET.2013.10.01.18.45.45.883.jpeg
这个命令:
$ renamer --find '/(.*?)(\.\d+)+(\.\w+)/' --replace '$1$3' *
产生这些文件名:
CAM168-NOTSET.jpg
CAM169-NOTSET.gif
CAM170-NOTSET.jpeg