【问题标题】:Move Images from Sub folders to Main Folders将图像从子文件夹移动到主文件夹
【发布时间】:2014-03-28 09:46:35
【问题描述】:

我有 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. 列表项最后一个文件夹只包含几个 图片,其他子文件夹没有图片文件。

【问题讨论】:

    标签: batch-file


    【解决方案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"
                )
            )
        )
    

    对文件进行递归枚举。对于找到的每个文件,如果它在目标文件夹中不存在,则移动到目标。如果有同名文件,则以增量文件名移动。不是防弹的,但应该做的工作。

    【讨论】:

    • 谢谢 MC ND。是否可以从 inputfolderpath 中删除空文件夹?因为移动图像后,我的系统有超过 5000 个空文件夹。
    • @Sagotharan,由于所有 NeoDownloader 都已被删除,请删除它rd "C:\Users\HP\Downloads\NeoDownloader" /s /q 小心,无需确认即可递归删除文件夹。
    • 再次感谢 MC ND。这个批处理文件没有什么有趣的。你节省了我的时间。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2015-05-06
      • 2021-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-25
      • 2022-12-10
      • 1970-01-01
      相关资源
      最近更新 更多