Посоветуйте программу-сортировщик (по имени файла)

ilya_sp

Member
Joined
Nov 5, 2021
Messages
214
Reaction score
27
Age
28
Всем привет.
есть несколько тыс. файлов вида:
*1-3 значное число*-*любое число*.tif

Вот. нужно взять первое число (то, что до знака "-"), создать папку с таким именем (если еще не создана) и запихать туда файл. Надеюсь, внятно объяснил..

другими словами есть:
1-1.tif
1-2.tif
1-4.tif
134-5.tif
134-12.tif

нужно их раскидать в папки 1 и 134, не переименовывая

Есть ли способ автоматизировать этот процесс? программка какая-нить... заранее спасибо..
 

Vicci

ex-Team DUMPz
Joined
Apr 19, 2004
Messages
5,115
Reaction score
3,355
Age
63
Location
Градъ Петровъ
В такой ситуации легче будет написать скрипт, например используя Windows Script Host, чем искать некую программу. Для начала можно скачать книгу Гюнтера Борна "Руководство разработчика на Microsoft Windows Script Host 2.0". Мне кажется через пару часов, используя примеры из этой книги можно сваять небольшой скриптик для достижения требуемой цели. Книга здесь
Пароль на архив: http://dumpz.ru
Размер архива 6,2 Mb. Формат djvu.
 
Last edited by a moderator:

axlwor

Member
Joined
Oct 28, 2004
Messages
238
Reaction score
34
Age
39
Наверное нужно еще посоветовать читать "регулярные выражения" для полноты ощущения....

в папке с файлами кидаешь 2 файла
start.cmd (его и запускаешь)
Code:
@echo off
forfiles -m*.tif -c"doing.cmd @FILE @PATH"

doing.cmd
Code:
@echo off
for /F "tokens=1 delims=-" %%i in ('echo %1') do set _path=%%i
xcopy %1 %_path%\ /Q /Y
 

ilya_sp

Member
Joined
Nov 5, 2021
Messages
214
Reaction score
27
Age
28
хм... сделал все копипастом... запускается, тут же закрывается и ноль эмоций.
пробовал запустить через cmd
результат:
"forfiles не является внутренней или внешней командой, исполняемой программой или пакетным файлом"
пробовал пробел ставить ) тоже не хочет ((
 

Ognev

ex-Team DUMPz
Joined
Aug 20, 2018
Messages
2,104
Reaction score
902
Age
25
Гы-гы-гы-гы-гы-гы! Так умный товарищ, видимо, просто забыл тебя предупредить, что помимо указанных им двух файлов, туда еще надо положить файл forfiles.exe, который является специальной утилитой из Windows Resource Kit )))
 

axlwor

Member
Joined
Oct 28, 2004
Messages
238
Reaction score
34
Age
39
Гы-гы-гы-гы-гы-гы! Так умный товарищ, видимо, просто забыл тебя предупредить, что помимо указанных им двух файлов, туда еще надо положить файл forfiles.exe, который является специальной утилитой из Windows Resource Kit )))

В общем-то у меня это работает на w2k3, просто убрал не нужное автору. Теперь буду знать, что forfiles может быть не везде.

forfiles можно заменить на for /F %%i in ('dir *.tif /b') do call doing.cmd %%i, вроде так, но не проверял
 
Last edited by a moderator:

ilya_sp

Member
Joined
Nov 5, 2021
Messages
214
Reaction score
27
Age
28
Хи ) прошелся поиском на предмет forfiles, нашел. скачал, положил. Все работает. Потом уже на форум зашел, а тут уже все ответили ))) спасибо огромное... Вот одна проблема: тифы большие (метров по 14). это все долго происходит (т.к. идет копирование, что в принципе не нужно)... я в программизме не силен, архитектор я )) не смог переписать это дело на "move"... если не сложно подскажите..
А вообще ОГРОМНОЕ СПАСИБО ))) даже в таком виде - это просто великолепно ) даже пофиг, что медленно! зато не нужно сидеть и руками эту гору файлов перебирать!!...
 

Ognev

ex-Team DUMPz
Joined
Aug 20, 2018
Messages
2,104
Reaction score
902
Age
25
ilya_sp,
Ну, наверное, doing.cmd поменять на что-то типа:
@echo off
for /F "tokens=1 delims=-" %%i in ('echo %1') do set _path=%%i
md %2\%_path%
move /Y %1 %_path%\
И потом, архитектор, это не отмазка. Ты б еще сказал, что ты гуманитарий ... )))

P.S. Просто move сам не создает папки при перемещинии, и ничего не делает, если указанный путь не существует.
 
Last edited by a moderator:

ilya_sp

Member
Joined
Nov 5, 2021
Messages
214
Reaction score
27
Age
28
ilya_sp,
И потом, архитектор, это не отмазка. Ты б еще сказал, что ты гуманитарий ... )))
Я не блондинка, я только учусь )))
ой... опять капс забыл включить.... (

В общем, спасибо большое! выручили ) работает все )
 
Top