用于在抓取后重命名和复制我的 NAS 映像的 Kodi 批处理文件

Kodi batch file for renaming and copying my NAS images after scraping

我写了一个批处理脚本来帮助处理图像和海报,Kodi 与一个名为 Media companion 的程序并行使用。在开发过程中出现意外情况后,我在某个特定区域遇到了问题。

我的脚本用于电视节目,分为 ROOT > 系列 > 第 1 - XX 季。在季节文件夹中有一个通常称为 folder.jpg 的文件。我的脚本复制了它,将其上移了一个级别并将其重命名为 Seasonxx-thumb and poster,以便 Kodi 使用我指定的海报。

在我使用 Media Companion 工具抓取文件夹之前,这非常有效...在使用 Media companion 工具之前,我在每个季节文件夹中拥有该季节的所有 MP4 文件....和一个 folder.jpg.我的脚本运行良好。现在我已经正确地抓取了信息,我有了所有的 MP4 文件,现在每集都有相应的 NFO 和缩略图文件……这是它应该做的……但现在对我的脚本造成了严重破坏因为现在有超过 1 个 jpg 文件....

令人高兴的是每个 .jpg 都以 XXXXXXXXX-thumb.jpg 结尾。所以我需要我的脚本来重命名唯一剩余的文件,该文件将以任何随机文件名出现,这将在下面的屏幕截图中显示。随机文件名很可能来自 IMDB 或 themoviedb 等网站的文件名,这些网站以前是唯一的 jpg 并重命名 folder.jpg 自动保留所有内容,如我所料。我这样做的原因是我有一定的文件大小 (1440x960) 用于跨 plex、serviio 和 Kodi 的海报渲染……我发现它们的大小各不相同……所以这个脚本处理复制。

所以我需要的是批处理忽略所有以 *-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 语句(根据我在搜索 [=45 时在某些示例中看到的内容) =] 和这里)。有人对我如何解决这个问题有任何想法吗?

谢谢

更新 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.

如果我没理解错的话,您想重命名您发现的第一个不是以“-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