如果已经回答道歉,那么搜索会给出类似但不完全正确的内容。
我使用XBMC和Western Digital TV Live作为媒体中心。 XBMC使用folder.jpg
用于电影盒艺术。但是,WD同时使用folder.jpg
和moviename.jpg
。
我的文件夹结构如下:
Films\movie1\movie1.mkv(or avi etc...)
Films\movie1\folder.jpg
Films\movie2\movie2.mkv (etc...)
Films\movie2\folder.jpg
我所追求的是一个.bat文件,它将扫描整个电影目录,复制folder.jpg
并使用folder.jpg
所在文件夹的名称重命名新的jpg。原始文件folder.jpg
应保留。
基本上来自:
Films\movie1\folder.jpg
要:
Films\movie1\folder.jpg
和
Films\movie1\movie1.jpg
这应该发生在Films
。
我确信这一定是可能的,但说实话,我对.bat
文件的了解非常有限。
答案 0 :(得分: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
,则可能只是.
)
您可以直接从命令提示符运行循环,但是您需要将%
个字符替换为单%
:
FOR /D %I IN ("D:\Path\to\Films\*") DO COPY "%I\folder.jpg" "%I\%~nxI.jpg"
另请注意,如果moviename.jpg
已存在,则COPY
命令将停止以确认是否覆盖该文件。如果您只想覆盖它而无需手动确认,请添加/Y
开关:
COPY /Y ...
答案 1 :(得分:0)
for /d %%a in (*) do if exist "%%~a\folder.jpg" echo copy /b "%%~a\folder.jpg" "%%~a\%%~na.jpg"
删除echo
以使其正常工作。