平时用迅雷下载电视剧,发现里面的文件名都很长,包括一段广告还有网址,压制视频参数等,标题长到播放器滚动显示。管理收藏播放都很是不方便,想说精简一点,文件夹的名字就是剧名,然后把里面文件全部改成 剧名01.mkv这种统一格式。
考虑到实际场景,迅雷下载到的文件,通常是相同视频格式mkv的剧集文件最多,还有些宣传文本文件txt,或电视剧海报封面jpg,还有就是迅雷的隐藏种子文件.torrent,想说改名之余,顺便把除了剧集以外的文件全部删除。然后我找了很久,都找不到选出文件夹里出现最多的后缀文件,如果能获取,就保留此类文件,按顺序改名,其余都删除。心力交瘁后,选择一种笨点的办法,只筛选mkv rmvb mp4目前电视剧最主流的格式,对比选出最多那个,结果还是有bug,就是当时文件达到10个,就计算出错,不知为何。
看看吧里大哥能否修正一下。
@璐村惂鐢ㄦ埛_000076K馃惥 off
setlocal enabledelayedexpansion
set /p mulu=请输入完整文件夹路径:
rem 下面分别计算。MKV。rmvb。MP4分别多少
set jimkv=0
for /r %mulu% %%f in (*.mkv) do (
set /a jimkv+=1
)
set jirmvb=0
for /r %mulu% %%f in (*.rmvb) do (
set /a jirmvb+=1
)
set jimp4=0
for /r %mulu% %%f in (*.mp4) do (
set /a jimp4+=1
)
rem 对比那个类型的最多,然后赋予变量后辍用于改名
if !jimkv! gtr !jimp4!+!jirmvb! (set houchuo=mkv) else (if !jimp4! gtr !jirmvb! (set houchuo=mp4) else (set houchuo=rmvb) )
rem 得到需要保留改名的后辍
attrib +a %mulu%\* /s
attrib -a %mulu%\*.%houchuo% /s
del /f /s /q /a:a %mulu%\*
rem 删除非该后辍文件开始改名
set /a jishu=0
for %%i in (%mulu%) do set "foldername=%%~nxi"
for /f "usebackq delims==" %%s in (`dir /b %mulu%\*.%houchuo%`) do (
set /a jishu+=1
if !jishu! LSS 10 (ren "%mulu%\%%s" %foldername%0!jishu!.%houchuo%) else (ren "%mulu%\%%s" %foldername%!jishu!.%houchuo%)
)
rem 补0,因为播放器识别01后到09才到10有些播放器无法识别1后直接10
echo.
考虑到实际场景,迅雷下载到的文件,通常是相同视频格式mkv的剧集文件最多,还有些宣传文本文件txt,或电视剧海报封面jpg,还有就是迅雷的隐藏种子文件.torrent,想说改名之余,顺便把除了剧集以外的文件全部删除。然后我找了很久,都找不到选出文件夹里出现最多的后缀文件,如果能获取,就保留此类文件,按顺序改名,其余都删除。心力交瘁后,选择一种笨点的办法,只筛选mkv rmvb mp4目前电视剧最主流的格式,对比选出最多那个,结果还是有bug,就是当时文件达到10个,就计算出错,不知为何。
看看吧里大哥能否修正一下。
@璐村惂鐢ㄦ埛_000076K馃惥 off
setlocal enabledelayedexpansion
set /p mulu=请输入完整文件夹路径:
rem 下面分别计算。MKV。rmvb。MP4分别多少
set jimkv=0
for /r %mulu% %%f in (*.mkv) do (
set /a jimkv+=1
)
set jirmvb=0
for /r %mulu% %%f in (*.rmvb) do (
set /a jirmvb+=1
)
set jimp4=0
for /r %mulu% %%f in (*.mp4) do (
set /a jimp4+=1
)
rem 对比那个类型的最多,然后赋予变量后辍用于改名
if !jimkv! gtr !jimp4!+!jirmvb! (set houchuo=mkv) else (if !jimp4! gtr !jirmvb! (set houchuo=mp4) else (set houchuo=rmvb) )
rem 得到需要保留改名的后辍
attrib +a %mulu%\* /s
attrib -a %mulu%\*.%houchuo% /s
del /f /s /q /a:a %mulu%\*
rem 删除非该后辍文件开始改名
set /a jishu=0
for %%i in (%mulu%) do set "foldername=%%~nxi"
for /f "usebackq delims==" %%s in (`dir /b %mulu%\*.%houchuo%`) do (
set /a jishu+=1
if !jishu! LSS 10 (ren "%mulu%\%%s" %foldername%0!jishu!.%houchuo%) else (ren "%mulu%\%%s" %foldername%!jishu!.%houchuo%)
)
rem 补0,因为播放器识别01后到09才到10有些播放器无法识别1后直接10
echo.