用于删除文件名中序列号不超过一定数量的文件的批处理脚本

Batch script to remove files with sequential numbers in filename upto certain number

我有大约 100 集的连续剧集列表,其名称采用典型的系列剧集格式,其字幕的命名方式如下所示:

S01E01.mkv
S01E02.mkv
S01E03.mkv
.....
.....
S01E01.srt
S01E02.srt
S01E03.srt

现在视频文件可以是 MKV 或 MP4(.mp4) 类型,字幕可以是 SRT 或 VTT(.vtt) 类型。

我有 100 个文件,就像我之前说的那样,我已经看了多达 65 集,所以我想制作一个批处理脚本,可以让我删除所有剧集(包括)S01E65 剧集视频和字幕(mp4, mkv、srt、vtt)。

不幸的是,我不太精通使用 Regex 查找和删除此类操作的批处理,我知道有 for 循环和 findstr 方法,但我无法包装我的寻找一个可行的解决方案。有人愿意帮忙吗?

首选方法肯定是Batch,但如果可行性不高,最后可以改用Powershell。

这是一个完全没有解释的批处理文件示例,(由于您缺乏努力):

@Echo Off
SetLocal EnableExtensions
PushD "V:\ideos\Dir"
For /F "Delims=" %%G In ('Dir "S01E*.srt" "S01E*.vtt" "S01E*.mp4" "S01E*.mkv" /B
 /A:-D 2^>NUL ^| %SystemRoot%\System32\findstr.exe /R /C:"^S01E0[0123456789]\."
 /C:"^S01E[12345][0123456789]\." /C:"^S01E6[012345]\."') Do Del /A /F "%%G"
PopD