![如何刪除部分名稱相似的檔案名稱?](https://rvso.com/image/1552785/%E5%A6%82%E4%BD%95%E5%88%AA%E9%99%A4%E9%83%A8%E5%88%86%E5%90%8D%E7%A8%B1%E7%9B%B8%E4%BC%BC%E7%9A%84%E6%AA%94%E6%A1%88%E5%90%8D%E7%A8%B1%EF%BC%9F.png)
我有一堆帶有時間戳的檔案名稱(低至納秒),我只想每秒保留一個檔案。例如,以下是一些檔案名稱:
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
檔案重新命名為 from HH-MM-SS-MMM
to HH-MM-SS
,除非檔案名稱已經存在。該REN
命令不會重命名該文件,之後它將被刪除。