Kodi剧集海报批量处理脚本跳过*-thumb.jpg文件问题求助
Batch脚本过滤单集缩略图重命名季海报问题
我编写了一款配合Media Companion使用的Batch脚本,用于处理Kodi所需的剧集海报与图片资源,开发过程中遇到问题求助。
该脚本针对目录结构为「根目录>剧集>季1-XX」的电视剧资源设计,原本各季文件夹内仅有对应季的MP4文件与一张folder.jpg海报,脚本可正常复制该文件,重命名为对应季的thumb文件作为Kodi可识别的季海报使用。
但在使用Media Companion对资源进行信息刮削后,各季文件夹内新增了单集对应的NFO文件与后缀为*-thumb.jpg的单集缩略图,导致原脚本中ren *.jpg folder.jpg的逻辑因目录下存在多个jpg文件失效。
目前我需要修改脚本,过滤所有以*-thumb.jpg结尾的文件,仅将目录下剩下的那张来源为IMDB、themoviedb的随机命名jpg文件重命名为folder.jpg,以适配Plex、Serviio、Kodi多平台1440x960规格的海报渲染需求。
原有代码片段
echo. if exist folder.jpg ( echo 无需重命名文件 ) else ( ren *.jpg folder.jpg echo ~~~~ 警告:第%SeasonCounter%季文件夹内的文件已重命名为folder.jpg ~~~~ ) echo. echo ~~~~~~~~~~~~~ 执行文件复制操作 ~~~~~~~~~~~~~ echo. echo 正在复制folder.jpg并生成季海报缩略图: echo. echo 复制源文件:folder.jpg 到 "%CurrDirName%-thumb.jpg" copy "folder.jpg" "%CurrDirName%-thumb.jpg"
典型文件夹结构见下图:
我了解Batch脚本逐行运行的特性,暂不知如何实现复合条件判断过滤文件名,求助可行的解决方案。
更新1:调整后的代码版本
我已参考方案修改代码如下,加入folder.jpg存在时跳过的逻辑:
echo. if exist folder.jpg ( echo 无需重命名文件 ) else ( setlocal enabledelayedexpansion for %%a in (*.jpg) do ( set "fn=%%a" if "!fn:~-10!" neq "-thumb.jpg" ( echo 正在使用"!fn!" ren "!fn!" folder.jpg goto :done_with_rename ) ) :done_with_rename echo ~~~~ 警告:第%SeasonCounter%季文件夹内的文件已重命名为folder.jpg ~~~~ echo 操作完成 ) echo.
内容的提问来源于stack exchange,提问作者Kittmaster
相关产品推荐
相关产品推荐

