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

  • Тут может быть ваша реклама

ilya_sp

Турист
5 Ноя 2004
212
1
43
39
Владивосток
Credits
0
Всем привет.
есть несколько тыс. файлов вида:
*1-3 значное число*-*любое число*.tif

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

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

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

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

Vicci

ex-Team DUMPz
19 Апр 2004
5.115
148
118
63
Градъ Петровъ
Credits
0
В такой ситуации легче будет написать скрипт, например используя Windows Script Host, чем искать некую программу. Для начала можно скачать книгу Гюнтера Борна "Руководство разработчика на Microsoft Windows Script Host 2.0". Мне кажется через пару часов, используя примеры из этой книги можно сваять небольшой скриптик для достижения требуемой цели. Книга здесь
Пароль на архив: http://dumpz.ru
Размер архива 6,2 Mb. Формат djvu.
 
Последнее редактирование модератором:

axlwor

Турист
29 Окт 2004
238
17
53
39
Credits
0
Наверное нужно еще посоветовать читать "регулярные выражения" для полноты ощущения....

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

doing.cmd
Код:
@echo off
for /F "tokens=1 delims=-" %%i in ('echo %1') do set _path=%%i
xcopy %1 %_path%\ /Q /Y
 
  • Like
Реакции: ilya_sp

ilya_sp

Турист
5 Ноя 2004
212
1
43
39
Владивосток
Credits
0
хм... сделал все копипастом... запускается, тут же закрывается и ноль эмоций.
пробовал запустить через cmd
результат:
"forfiles не является внутренней или внешней командой, исполняемой программой или пакетным файлом"
пробовал пробел ставить ) тоже не хочет ((
 

Ognev

ex-Team DUMPz
20 Авг 2004
2.102
82
118
25
В караганде
Credits
0
Гы-гы-гы-гы-гы-гы! Так умный товарищ, видимо, просто забыл тебя предупредить, что помимо указанных им двух файлов, туда еще надо положить файл forfiles.exe, который является специальной утилитой из Windows Resource Kit )))
 
  • Like
Реакции: ilya_sp и axlwor

axlwor

Турист
29 Окт 2004
238
17
53
39
Credits
0
Гы-гы-гы-гы-гы-гы! Так умный товарищ, видимо, просто забыл тебя предупредить, что помимо указанных им двух файлов, туда еще надо положить файл forfiles.exe, который является специальной утилитой из Windows Resource Kit )))

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

forfiles можно заменить на for /F %%i in ('dir *.tif /b') do call doing.cmd %%i, вроде так, но не проверял
 
Последнее редактирование модератором:
  • Like
Реакции: ilya_sp

ilya_sp

Турист
5 Ноя 2004
212
1
43
39
Владивосток
Credits
0
Хи ) прошелся поиском на предмет forfiles, нашел. скачал, положил. Все работает. Потом уже на форум зашел, а тут уже все ответили ))) спасибо огромное... Вот одна проблема: тифы большие (метров по 14). это все долго происходит (т.к. идет копирование, что в принципе не нужно)... я в программизме не силен, архитектор я )) не смог переписать это дело на "move"... если не сложно подскажите..
А вообще ОГРОМНОЕ СПАСИБО ))) даже в таком виде - это просто великолепно ) даже пофиг, что медленно! зато не нужно сидеть и руками эту гору файлов перебирать!!...
 

Ognev

ex-Team DUMPz
20 Авг 2004
2.102
82
118
25
В караганде
Credits
0
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 сам не создает папки при перемещинии, и ничего не делает, если указанный путь не существует.
 
Последнее редактирование модератором:
  • Like
Реакции: ilya_sp

ilya_sp

Турист
5 Ноя 2004
212
1
43
39
Владивосток
Credits
0
ilya_sp,
И потом, архитектор, это не отмазка. Ты б еще сказал, что ты гуманитарий ... )))
Я не блондинка, я только учусь )))
ой... опять капс забыл включить.... (

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