PDA

Показать полную графическую версию : Поиск и сортировка файлов по части названия


registeruser1
03-05-2017, 19:14
Друзья, доброго времени суток.
Ситуация следующая - есть папка, в ней еще куча папок с файлами.
Файлы помечены в конце названия плюсами через пробел, например:

имя_файла +.txt
имя_файла + +.txt
имя_файла + + +.txt

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

megaloman
03-05-2017, 23:06
@Echo Off

Set "BoxIn=Z:\Box_In"

Set "File1=* +.txt"
Set "File2=* + +.txt"
Set "File3=* + + +.txt"

Set "BoxOut1=Z:\Box_Out\+"
Set "BoxOut2=Z:\Box_Out\+ +"
Set "BoxOut3=Z:\Box_Out\+ + +"

FOR /F "usebackq delims=" %%f IN (`Dir "%BoxIn%\%File3%" /B /A-D /S 2^>nul`) DO Call :PlusMove "%%f" "%BoxOut3%"
FOR /F "usebackq delims=" %%f IN (`Dir "%BoxIn%\%File2%" /B /A-D /S 2^>nul`) DO Call :PlusMove "%%f" "%BoxOut2%"
FOR /F "usebackq delims=" %%f IN (`Dir "%BoxIn%\%File1%" /B /A-D /S 2^>nul`) DO Call :PlusMove "%%f" "%BoxOut1%"

GoTo :Eof

:PlusMove
Set "In=%~dp1"
Set "Out=%~2"

Call Set "Out=%%In:%BoxIn%=%Out%%%

If Not Exist "%Out%" Md "%Out%"
Move %1 "%Out%" >nul
GoTo :Eof@Echo Off

Set "BoxIn=Z:\Box_In"

Set "File1=* +.txt"
Set "File2=* + +.txt"
Set "File3=* + + +.txt"

Set "BoxOut1=Z:\Box_Out\+"
Set "BoxOut2=Z:\Box_Out\+ +"
Set "BoxOut3=Z:\Box_Out\+ + +"

FOR /F "usebackq delims=" %%f IN (`Dir "%BoxIn%\%File3%" /B /A-D /S 2^>nul`) DO Call :PlusMove "%%f" "%BoxOut3%"
FOR /F "usebackq delims=" %%f IN (`Dir "%BoxIn%\%File2%" /B /A-D /S 2^>nul`) DO Call :PlusMove "%%f" "%BoxOut2%"
FOR /F "usebackq delims=" %%f IN (`Dir "%BoxIn%\%File1%" /B /A-D /S 2^>nul`) DO Call :PlusMove "%%f" "%BoxOut1%"

GoTo :Eof

:PlusMove
If Not Exist %2 Md %2
Move /Y %1 "%~2\" >nul
GoTo :Eof

Iska
04-05-2017, 00:15
(внимание! при совпадении имён в разных папках останется один файл с этим именем) »
@#$%! Почему, ну, почему никогда не обращают на это внимание при озвучивании своих ТЗ?!

registeruser1
04-05-2017, 05:38
megaloman, спасибо, но не хочет работать. Просто запускается и все закрывается.
Если это поможет, у меня стоить ХР-x64 SP2.

Iska
04-05-2017, 09:21
registeruser1, не поможет. Чтобы помогло, Вы должны полностью и подробно описать свои действия: какой именно код брали — первый или второй, правили ли код по своим потребностям (например, меняли имена папок), в какой кодировке сохраняли пакетный файл, как исполняли пакетный файл и т.д.




© OSzone.net 2001-2012