我有一堆带有时间戳(精确到纳秒)的文件名,我只想每秒保留一个文件。例如,以下是一些文件名:
11-14-29-033.jpg
(这意味着该文件是在第 11 小时 14 分 29 秒 33 纳秒录制的)。
11-14-29-602.jpg
11-14-29-839.jpg
11-14-29-953.jpg
11-14-30-406.jpg
11-14-30-847.jpg
11-14-31-091.jpg
11-14-31-419.jpg
11-14-31-667.jpg
11-14-32-364.jpg
11-14-32-619.jpg
11-14-32-913.jpg
11-14-33-150.jpg
11-14-33-485.jpg
11-14-33-708.jpg
11-14-34-052.jpg
11-14-34-336.jpg
11-14-35-174.jpg
11-14-36-563.jpg
11-14-36-788.jpg
11-14-37-278.jpg
11-14-37-584.jpg
11-14-38-050.jpg
11-14-38-841.jpg
11-14-39-196.jpg
11-14-39-736.jpg
11-14-39-870.jpg
11-14-40-091.jpg
11-14-40-766.jpg
11-14-41-052.jpg
11-14-41-676.jpg
有没有办法我可以编写一个批处理文件(在 Windows 中)来每秒删除除 1 个文件之外的所有文件?
答案1
这应该可以完成这项工作:
@ECHO OFF
SETLOCAL EnableDelayedExpansion
SET "source=C:\adjust\path"
FOR /R "%source%" %%F IN ("??-??-??-???.jpg") DO (
SET "file_name=%%~nF"
SET "file_name=!file_name:~0,-4!"
REN "%%F" "!file_name!%%~xF" >nul 2>&1
)
FOR /R "%source%" %%G IN ("??-??-??-???.jpg") DO (
DEL "%%G"
)
ECHO Done^^!
PAUSE
此FOR /R
循环将通过简单地删除最后 4 个字符将每个.jpg
文件重命名为从HH-MM-SS-MMM
到HH-MM-SS
,除非文件名已存在。该REN
命令不会重命名文件,之后它将被删除。