将图像从子文件夹移动到主文件夹

时间:2014-03-28 09:46:35

标签: batch-file

我有n个带图像的子文件夹。我想将所有图像移动到主文件夹以正确组织它们。

例如 -

C:\Users\HP\Downloads\NeoDownloader\Book Cover\fc02.deviantart.net\fs17\i\2007\225\9\0\front_cover_of_myths_book_by_cathydelanssay.jpg

C:\Users\HP\Downloads\NeoDownloader\Book Cover\fc02.deviantart.net\fs30\i\2008\092\8\7\The_Seagull_by_rei_i.jpg

就像上面的位置一样,我有超过2000张图像。我想将所有这些图像移动到一个主文件夹中。

如果文件夹名称是常量,我可以写批量文件。但那些子文件夹不一样。所以我无法在批处理文件中指定。没有编码就难以移动。所以帮我组织一下我的电脑中的图像。

备注 -

  1. 所有图片均为jpg格式
  2. 列表项最后一个文件夹只包含少数 图像,其他子文件夹没有图像文件。
  3. enter image description here

2 个答案:

答案 0 :(得分:1)

@echo off
    setlocal enableextensions

    set "inputFolder=C:\Users\HP\Downloads\NeoDownloader"
    set "outputFolder=c:\somewhere"

    for /r "%inputFolder%" %%a in (*.jpg) do (
        if not exist "%outputFolder%\%%~nxa" ( 
            move "%%~fa" "%outputFolder%"
        ) else (
            for /f "delims=" %%b in ('dir /b "%outputFolder%\%%~na_~[*]%%~xa" 2^>nul ^| find /c /v ""') do (
                move "%%~fa" "%outputFolder%\%%~na_~[%%b]%%~xa"
            )
        )
    )

执行文件的递归枚举。对于找到的每个文件,如果目标文件夹中不存在,请移至目标。如果存在具有相同名称的文件,则使用增量文件名移动该文件。不是防弹,但应该做的工作。

答案 1 :(得分:0)

确保在运行批处理之前创建输出目录。我很难学到这一点......