Автоматически помещать файлы в папки

У меня есть тысячи JPG, названных так: "aaa0001.jpg, aaa0002.jpg, aaa0003.jpg, bbb0001.jpg, bbb0002.jpg, bbb0003.jpg, ccc0001.jpg, ccc0002.jpg, ccc0003.jpg и т. Д." в одной папке.

Я создал 26 папок, таких как aaa, bbb, ccc, ddd и т. Д.

Можно ли создать скрипт, который устанавливает все изображения в соответствующую папку?

Результат "aaa0001.jpg, aaa0002.jpg, aaa0003.jpg" в папку "aaa", "bbb0001.jpg, bbb0002.jpg, bbb0003.jpg" в папку "bbb" и т. Д.

Спасибо!

Моя система Windows XP Prof SP3...

2 ответа

Так будет в пакетном файле Windows/ DOS.

Заявление %fp:~0,3% определяет, какая часть имени файла используется в качестве foldername. 0,3 означает: от первого символа и следующих 3 символов. так файл с именем aaa001-01.jpg даст папку aaa,
Иметь файлы с именем abc001_03.jpg перейти в папку 001 вы меняете утверждение на %fp:~3,3%

for %%a in (*.jpg) do call :copyfile %%a
goto :eof

:copyfile
set fp=%1
set folder=%fp:~0,3%

rem remove echo on the next line...
echo copy "%1" "%folder%"
rem or for moving:   move /Y "%1" "%folder%"

goto :eof

Просто определите базовый путь для создания каталогов новостей в VAR $path

@echo off
setlocal EnableDelayedExpansion

:::The path where the new Directorys will bw created

set $path="c:\Image\"

for %%a in (*.jpg) do (set $file="%%a"
                       set $Dir="%$path%CSV!$file:~4,3!"
                       if not exist "!$dir!" md "!$dir!"
                       move "!$file!" "!$dir!")

echo Terminated
Другие вопросы по тегам