我写了一个批处理脚本来帮助处理Kodi使用的图像和海报,同时还使用了一个名为Media companion的程序。在开发过程中出现了意想不到的情况后,我在一个特定的领域遇到了问题。
我的脚本用于电视节目,这些节目被分成根>连续剧>第一季- XX。在season文件夹中有一个通常称为folder.jpg的文件。我的脚本获取了一个副本,并将其上移一级,并将其重命名为Seasonxx-thumb and poster,以便Kodi使用我指定的海报。
在我使用Media Companion tool...before抓取文件夹之前,这个方法工作得很好,因为我在每个赛季的文件夹中都有媒体伴侣工具,所有season....and的MP4文件都是一个单独的folder.jpg。我的脚本运行得很好。现在我已经正确地抓取了信息,我有了所有的MP4文件,现在每个episode.which对应的NFO和缩略图文件就是它应该做的,do....but现在对我的脚本造成了很大的破坏,因为现在有超过1个的jpg文件存在……
好的是每个.jpg都以XXXXXXXXX thumb.jpg结尾。所以我需要我的脚本来重命名唯一剩下的文件,它将有任何随机文件名,这将显示在我的屏幕截图下面。随机文件名很可能是来自IMDB或themoviedb等站点的文件名,这些站点以前可能是唯一的jpg,并将其重命名为folder.jpg,自动保存所有内容,正如我所期望的那样。我这样做的原因是,我有一个特定的文件大小(1440x960)的海报渲染跨plex,serviio和Kodi…我发现他们都是各种sizes...so这个脚本处理的复制。
所以我需要做的是批处理忽略所有以*-thumb.jpg结尾的文件,只将剩下的一个随机文件名相应地重命名为folder.jpg。调整大小是我手动处理的事情,它更多的是让folder.jpg就位,并让脚本的其余部分相应地运行。
下面是我用来重命名之前单独的.jpg文件的代码片段:
echo.
if exist folder.jpg (
echo File rename not needed
) else (
ren *.jpg folder.jpg
echo ~~~~ WARNING: File renamed as folder.jpg in Season %SeasonCounter% folder. ~~~~
)
echo.
echo ~~~~~~~~~~~~~ Copy File Operation ~~~~~~~~~~~~~
echo.
echo Copying "folder.jpg & Creating Files Season Poster & Thumbnail:
echo.
echo File copy source: "folder.jpg >> "%CurrDirName%-thumb.jpg"
copy "folder.jpg" "%CurrDirName%-thumb.jpg"
下面是文件夹结构的典型外观:
我不完全确定如何处理这个问题,因为批处理脚本一次运行一行,并且我不能使用复合IF语句(从我搜索Google和here时在一些示例中看到的)。有人对我如何解决这个问题有什么想法吗?
谢谢
更新1:
在下面Anon Coward的帮助下,我将他的答案放入我的代码中,并额外检查folder.jpg是否存在以不执行任何操作,否则执行:
echo.
if exist folder.jpg (
echo File rename not needed
) else (
setlocal enabledelayedexpansion
for %%a in (*.jpg) do (
set "fn=%%a"
if "!fn:~-10!" neq "-thumb.jpg" (
echo Using "!fn!"
ren "!fn!" folder.jpg
goto :done_with_rename
)
)
:done_with_rename
echo ~~~~ WARNING: File renamed as folder.jpg in Season %SeasonCounter% folder. ~~~~
echo all done
)
echo.
发布于 2021-11-22 18:41:30
如果我没理解错的话,你想要重命名你发现的第一个不以"-thumb.jpg“结尾的jpg文件。如果是这样,那么您可以查看所有可能的.jpg文件,并忽略所有以"-thumb.jpg“结尾的文件,重命名剩下的文件:
setlocal enabledelayedexpansion
for %%a in (*.jpg) do (
set "fn=%%a"
if "!fn:~-10!" neq "-thumb.jpg" (
echo Using "!fn!"
ren "!fn!" folder.jpg
goto :done_with_rename
)
)
:done_with_rename
echo all done
https://stackoverflow.com/questions/70069684
复制相似问题