我有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张图像。我想将所有这些图像移动到一个主文件夹中。
如果文件夹名称是常量,我可以写批量文件。但那些子文件夹不一样。所以我无法在批处理文件中指定。没有编码就难以移动。所以帮我组织一下我的电脑中的图像。
备注 -
答案 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)
确保在运行批处理之前创建输出目录。我很难学到这一点......