Сортировочное

Aug 30, 2011 19:51

Тут для раскладки всякого разного по папочкам понадобилось скриптик написать. По такому принципу - папка с заглавной буквой и в ней папки по первому слову названия. Курение гугля и мануалов, добытых из него же, в итоге позволило соорудить батник с вложенными циклами и подпрограммамми.

@echo off
rem цикл по алфавиту
for /f %%i in ('dir /b "E:\Folder\" ') do call :b %%i=%1
goto :eof

rem цикл по первому слову
: b
set letter=%1
set sours=D:\Download
set target=E:\Folder\%letter%
for /f "tokens=1 delims=_" %%j in (' dir /b "%sours%\%letter%*" ') do call :c %%j=%1

rem перемещение
: c
set first=%1
if not exist %target%\%first% md %target%\%first%
move /-y %sours%\%first%_* %target%\%first%

Для команды for в хелпе указана возможность использовать в массиве текстовую строку, но эксперименты ничего не дали, примеров не нашел, пришлось использовать в качестве алфавитного списка уже имеющиеся папки там куда надо все переместить. Так что до запуска нужно буде создать в целевой папке еще папок по числу букв в алфавите, иначе скриптик вывалится с ошибкой и недоумением в взоре.
 Исполняемыми командами в цилах стоят вызовы других батников, тут они просто выполнены не отдельными файликами, а вставлены в основновной. После метки определяются передаваемые параметры. 
 В конце первого цикла стоит команда на выход.

библиотечное, мелочь, it

Previous post Next post
Up