Найти и переименовать
Select messages from
# through # FAQ
[/[Print]\]
Goto page 1, 2  Next  :| |:
Total Commander -> Автоматизация Total Commander

#1: Найти и переименовать Author: gumanok PostPosted: Tue Jan 27, 2009 19:51
    —
Подскажите, пожалуйста, можно ли переименовать много файлов, чтобы у каждого был свой шаблон? Т.е. что-то вроде "Найти и заменить" с множеством переменных. Стандартное поле не подходит, т.к. искать нужно больше 255 символов.

Файлы:
00601.jpg
60002.jpg
07003.jpg
00104.jpg
08005.jpg
.....
Текстовой файл:
---------------------
00601.jpg masha
60002.jpg misha
07003.jpg tanya
00104.jpg vasya
08005.jpg dima
---------------------

Должно быть:
masha.jpg
misha.jpg
tanya.jpg
vasya.jpg
dima.jpg
---------------------

"Загрузить имена из файла" не пойдет, т.к. в текстовом файле подписаны слова НЕ ВСЕ файлы.
Как быть?

#2: Re: Найти и переименовать Author: Tol!kLocation: Арзамас PostPosted: Tue Jan 27, 2009 21:03
    —
gumanok wrote:
...искать нужно больше 255 символов.
А в примерах не больше пяти... Confused
gumanok wrote:
...в текстовом файле подписаны слова НЕ ВСЕ файлы.
Приведи текстовой файл (например Replace в редакторе EditPlus может искать\вставлять переводы строк) к виду ren 00601.jpg masha.jpg, сохрани\переименуй в bat и запусти
renme.bat
----------------------------
ren 00601.jpg masha.jpg
ren 60002.jpg misha.jpg
ren 07003.jpg tanya.jpg
ren 00104.jpg vasya.jpg
ren 08005.jpg dima.jpg

#3:  Author: Tol!kLocation: Арзамас PostPosted: Tue Jan 27, 2009 21:35
    —
Если в именах нет пробелов, сработает команда
for /F "delims=" %a in (list.txt) do ren %a.jpg
Note: В конце строк текстового файла тоже не должно быть пробелов.

#4:  Author: gumanok PostPosted: Tue Jan 27, 2009 22:58
    —
Спасибо, получилось!

#5: Сортировка по папкам Author: gumanok PostPosted: Wed Jan 28, 2009 11:08
    —
Теперь появилась новая задача.
Исходник тот же. Но каждому имени теперь принадлежат несколько файлов.

Можно ли их отсортировать по соотв. папкам, которые нужно создать с названием имени?

00601.jpg masha
60002.jpg masha
07003.jpg masha
00104.jpg vasya
08005.jpg sveta
40601.jpg vasya
65002.jpg vova
07603.jpg vova
00174.jpg vova
08015.jpg vasya
00621.jpg vasya
60302.jpg masha
47003.jpg masha
09104.jpg sveta
08995.jpg sveta

Заранее благодарен.

#6:  Author: Tol!kLocation: Арзамас PostPosted: Wed Jan 28, 2009 22:09
    —
Команда
for /F "delims=" %a in (list.txt) do xxcopy /RCY /YY %a\
Условия те же, что в третьем посте.
xxcopy скачать здесь

#7:  Author: gumanok PostPosted: Sun Feb 01, 2009 01:46
    —
У меня получилось переименовать файлы через батник.

Команда for /F "delims=" %a in (list.txt) do ren %a.jpg вызвала сообщение об ошибке "Файл не найден".

Я в этом не большой специалист. Текстовой файл назвал list.txt, положил его в ту же директорию, где и файлы, и запустил эту команду.

С командой for /F "delims=" %a in (list.txt) do xxcopy /RCY /YY %a\
была та же ошибка. Файл почему-то не находится.

#8:  Author: ВахмуркаLocation: Большая деревня Москва PostPosted: Sun Feb 01, 2009 02:05
    —
Попробуй прописать полный путь к файлу list.txt (для xxcopy.exe, кстати, справедливо то же). Если путь содержит пробелы, возможны сложности.

#9:  Author: Tol!kLocation: Арзамас PostPosted: Sun Feb 01, 2009 02:47
    —
gumanok wrote:
сообщение об ошибке "Файл не найден"

gumanok
Запускаешь прямо из командной строки ТС? Команда for ... do ... — это команда консоли (cmd). Как запускать:
или сначала открой консоль и уже в ней вводи эти команды;
или в ком.строке ТС перед командами нужно приписАть cmd /k
Code:
cmd /k for /F "delims=" %a in (list.txt) do xxcopy /RCY /YY %a\

или создай bat-файл (удвоив символы %) и запускай уже его

rem --------------- sort_me.bat ------------
for /F "delims=" %%a in (list.txt) do xxcopy /RCY /YY %%a\
rem --------------- sort_me.bat ------------

#10:  Author: gumanok PostPosted: Mon Feb 02, 2009 16:47
    —
Все сработало! Но для xxcopy пришлось абсолютный путь прописывать.
На растаскивание 50 тыс файлов ушло 6 часов.

Кстати, батник 50 тыс файлов переименовать не смог. Доходил до 2 тысяч и сбрасывался.

Через командную строку работает здорово. Быстро и без сбоев. Я параллельно запускал 30 процессов в каждом по 50 тыс файлов. Ошибок не было.

xxcopy - вещь!

#11:  Author: ВахмуркаLocation: Большая деревня Москва PostPosted: Tue Feb 03, 2009 20:57
    —
Quote:
Но для xxcopy пришлось абсолютный путь прописывать.
...О чем и предупреждали большевики:
Вахмурка wrote:
Попробуй прописать полный путь к файлу list.txt
Quote:
батник 50 тыс файлов переименовать не смог. Доходил до 2 тысяч и сбрасывался.
При работе в Нортоне под ДОС он тоже отказывается показывать больше 2000 файлов. Видимо, это ограничение операционной системы (ДОС то есть). Знатоки, я прав?
Quote:
xxcopy - вещь!
Поддерживаю и одобряю.

#12:  Author: CaptainFlintLocation: Москва PostPosted: Tue Feb 03, 2009 21:41
    —
Вахмурка wrote:
При работе в Нортоне под ДОС он тоже отказывается показывать больше 2000 файлов. Видимо, это ограничение операционной системы (ДОС то есть). Знатоки, я прав?

Не слышал о таком ограничении… По крайней мере, точно сталкивался с тем, что команда dir в DOS'е выводила все файлы даже там, где Нортон упирался в свои 2000 (а именно — в каталоге I386 установочного диска WinXP). Так что если какие-то ограничения есть, то не принципиальные.

#13:  Author: Tol!kLocation: Арзамас PostPosted: Tue Feb 03, 2009 22:01
    —
gumanok wrote:
Но для xxcopy пришлось абсолютный путь прописывать.
Установили не в папку по умолчанию? Тогда нужно добавить её в переменную %PATH%

Вахмурка
DN (при >2000 файлов в каталоге) переставал сортировать, но выводил все файлы.

#14:  Author: ВахмуркаLocation: Большая деревня Москва PostPosted: Tue Feb 03, 2009 22:10
    —
Quote:
Установили не в папку по умолчанию?
Если мне не изменяет память, по умолчанию xxcopy пытается ставиться в %systemroot%\system32. По-моему, это не есть хорошо. Во-первых, туда не будет доступа при отсутствии админских прав. Во-вторых, при сносе/переустановке оси придется переставлять и xxcopy. В-третьих, в системную директорию вообще не рекомендуется ничего писать (стирать оттуда тем паче), предоставив это оси.
Я еще со времен работы в ДОС усвоил: всегда указывая полные пути (без умолчаний), больше выигрываешь, чем теряешь.

#15:  Author: Tol!kLocation: Арзамас PostPosted: Tue Feb 03, 2009 22:23
    —
Вахмурка wrote:
Если мне не изменяет память...
Не изменяет
Вахмурка wrote:
...всегда указывая полные пути (без умолчаний), больше выигрываешь, чем теряешь.
Чем аргументируешь? Cool (кроме быстрого нахождения файла операционкой)



Total Commander -> Автоматизация Total Commander


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Goto page 1, 2  Next  :| |:
Page 1 of 2

Powered by phpBB © 2001, 2005 phpBB Group