2

抱歉,如果这个问题已经得到解答,搜索会给出类似但不完全是我所追求的东西。

我使用 XBMC 和 Western Digital TV Live 作为媒体中心。XBMCfolder.jpg用于电影盒装艺术。但是,WD 同时使用folder.jpgmoviename.jpg

我的文件夹结构如下:

Films\movie1\movie1.mkv(or avi etc...)
Films\movie1\folder.jpg
Films\movie2\movie2.mkv (etc...)
Films\movie2\folder.jpg

我要的是一个 .bat 文件,它将扫描整个电影目录,复制folder.jpg并使用所在文件夹的名称重命名新的 jpg folder.jpg。原始文件folder.jpg应该保留。

主要来自:

Films\movie1\folder.jpg

至:

Films\movie1\folder.jpg

Films\movie1\movie1.jpg

这应该发生在Films.

我确信这一定是可能的,但老实说,我对.bat文件的了解非常有限。

4

2 回答 2

1

您可以使用FOR /D循环遍历以下子目录Films

@ECHO OFF
FOR /D %%I IN ("D:\Path\to\Films\*") DO (
  COPY "%%I\folder.jpg" "%%I\%%~nxI.jpg"
)

在循环中,子目录的完整路径被引用为%%I,其名称单独为%%~nxI(可能只是%%~nI名称从不包含 a .)。

您可以直接从命令提示符运行循环,但您需要%用 single 替换双字符%

FOR /D %I IN ("D:\Path\to\Films\*") DO COPY "%I\folder.jpg" "%I\%~nxI.jpg"

另请注意,如果 amoviename.jpg已经存在,COPY命令将停止以确认覆盖文件。如果您只想在不手动确认的情况下覆盖它,请添加/Y开关:

COPY /Y ...
于 2013-11-10T21:53:59.460 回答
0
for /d %%a in (*) do if exist "%%~a\folder.jpg" echo copy /b "%%~a\folder.jpg" "%%~a\%%~na.jpg"

删除echo以使其正常工作。

于 2013-11-10T22:46:36.270 回答