2014-03-28 122 views
0

我有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 

像上面位置,我有更多然后20​​00图像。我想在一个主文件夹中移动所有这些图像。

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

说明 -

  1. 所有图片JPG格式只
  2. 列表项最后一个文件夹包含只有少数 图像,其他子文件夹没有图像文件。

enter image description here

回答

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" 
      ) 
     ) 
    ) 

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

+0

谢谢MC ND。是否可以从输入文件夹路径删除空文件夹?因为在移动图像后,我的系统有超过5000个空文件夹。 – Sagotharan

+0

@Sagotharan,因为所有的NeoDownloader已被删除,请将其删除'rd“C:\ Users \ HP \ Downloads \ NeoDownloader”/ s/q'要小心,无需确认递归删除文件夹。 –

+0

再次谢谢MC ND。这批文件没有什么意思。你节省了我的时间。 – Sagotharan

0

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

相关问题