用于复制和重命名文件夹名称的文件的批处理文件

时间:2014-01-14 16:06:56

标签: batch-file copy rename

我有一个包含数百个电影子文件夹的文件夹,每个子文件夹包含几个电影和几个jpgs。每个电影子文件夹和该文件夹中的一个jpg都被赋予了电影的名称(即文件夹名称:The Matrix和图像名称:The Matrix.jpgbackdrop.jpg,{{1} })。我想复制每个与文件夹同名的jpgs,将这些副本命名为fanart.jpg,并将它们放在同一个文件夹中。

我发现这个脚本但是无法弄清楚如何根据我的情况调整它,因为它假设文件夹中只有一个jpg。

folder.jpg

1 个答案:

答案 0 :(得分:0)

@echo off
    set "whereToStart=d:\movies"

    for /d /r "%whereToStart%" %%f in (*) do (
        if exist "%%~ff\%%~nxf.jpg" copy /y "%%~ff\%%~nxf.jpg" "%%~ff\folder.jpg" 
    )

对于每个文件夹,如果它包含与目录同名的.jpg文件,请将此文件作为folder.jpg复制到同一目录中。可以添加附加检查以避免不需要的副本,检查是否存在目标文件

@echo off
    set "whereToStart=d:\movies"

    for /d /r "%whereToStart%" %%f in (*) do (
        if exist "%%~ff\%%~nxf.jpg" if not exist "%%~ff\folder.jpg" (
            copy "%%~ff\%%~nxf.jpg" "%%~ff\folder.jpg" 
        )
    )