将图像从子文件夹移动到主文件夹
问题描述:
我有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图像。我想在一个主文件夹中移动所有这些图像。
如果文件夹名称不变,我可以写入批处理文件。但是这些子文件夹是不一样的。所以我不能在批处理文件中指定。没有编码就难以移动。所以帮助我组织我的电脑中的图像。
说明 -
- 所有图片JPG格式只
- 列表项最后一个文件夹包含只有少数 图像,其他子文件夹没有图像文件。
答
@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。是否可以从输入文件夹路径删除空文件夹?因为在移动图像后,我的系统有超过5000个空文件夹。 – Sagotharan
@Sagotharan,因为所有的NeoDownloader已被删除,请将其删除'rd“C:\ Users \ HP \ Downloads \ NeoDownloader”/ s/q'要小心,无需确认递归删除文件夹。 –
再次谢谢MC ND。这批文件没有什么意思。你节省了我的时间。 – Sagotharan