View previous topic :: View next topic |
Author |
Message |
gumanok
Joined: 27 Jan 2009 Posts: 8
|
(Separately) Posted: Tue Jan 27, 2009 19:51 Post subject: Найти и переименовать |
|
|
Подскажите, пожалуйста, можно ли переименовать много файлов, чтобы у каждого был свой шаблон? Т.е. что-то вроде "Найти и заменить" с множеством переменных. Стандартное поле не подходит, т.к. искать нужно больше 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
---------------------
"Загрузить имена из файла" не пойдет, т.к. в текстовом файле подписаны слова НЕ ВСЕ файлы.
Как быть? |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Tue Jan 27, 2009 21:03 Post subject: Re: Найти и переименовать |
|
|
gumanok wrote: | ...искать нужно больше 255 символов. | А в примерах не больше пяти...
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 |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Tue Jan 27, 2009 21:35 Post subject: |
|
|
Если в именах нет пробелов, сработает команда
for /F "delims=" %a in (list.txt) do ren %a.jpg
Note: В конце строк текстового файла тоже не должно быть пробелов. |
|
Back to top |
|
|
gumanok
Joined: 27 Jan 2009 Posts: 8
|
(Separately) Posted: Tue Jan 27, 2009 22:58 Post subject: |
|
|
Спасибо, получилось! |
|
Back to top |
|
|
gumanok
Joined: 27 Jan 2009 Posts: 8
|
(Separately) Posted: Wed Jan 28, 2009 11:08 Post subject: Сортировка по папкам |
|
|
Теперь появилась новая задача.
Исходник тот же. Но каждому имени теперь принадлежат несколько файлов.
Можно ли их отсортировать по соотв. папкам, которые нужно создать с названием имени?
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
Заранее благодарен. |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Wed Jan 28, 2009 22:09 Post subject: |
|
|
Команда
for /F "delims=" %a in (list.txt) do xxcopy /RCY /YY %a\
Условия те же, что в третьем посте.
xxcopy скачать здесь |
|
Back to top |
|
|
gumanok
Joined: 27 Jan 2009 Posts: 8
|
(Separately) Posted: Sun Feb 01, 2009 01:46 Post subject: |
|
|
У меня получилось переименовать файлы через батник.
Команда 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\
была та же ошибка. Файл почему-то не находится. |
|
Back to top |
|
|
Вахмурка
Joined: 27 Dec 2004 Posts: 2585 Location: Большая деревня Москва
|
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Sun Feb 01, 2009 02:47 Post subject: |
|
|
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 ------------ |
|
Back to top |
|
|
gumanok
Joined: 27 Jan 2009 Posts: 8
|
(Separately) Posted: Mon Feb 02, 2009 16:47 Post subject: |
|
|
Все сработало! Но для xxcopy пришлось абсолютный путь прописывать.
На растаскивание 50 тыс файлов ушло 6 часов.
Кстати, батник 50 тыс файлов переименовать не смог. Доходил до 2 тысяч и сбрасывался.
Через командную строку работает здорово. Быстро и без сбоев. Я параллельно запускал 30 процессов в каждом по 50 тыс файлов. Ошибок не было.
xxcopy - вещь! |
|
Back to top |
|
|
Вахмурка
Joined: 27 Dec 2004 Posts: 2585 Location: Большая деревня Москва
|
(Separately) Posted: Tue Feb 03, 2009 20:57 Post subject: |
|
|
Quote: | Но для xxcopy пришлось абсолютный путь прописывать. | ...О чем и предупреждали большевики:
Вахмурка wrote: | Попробуй прописать полный путь к файлу list.txt |
Quote: | батник 50 тыс файлов переименовать не смог. Доходил до 2 тысяч и сбрасывался. | При работе в Нортоне под ДОС он тоже отказывается показывать больше 2000 файлов. Видимо, это ограничение операционной системы (ДОС то есть). Знатоки, я прав?Поддерживаю и одобряю. _________________ Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон) |
|
Back to top |
|
|
CaptainFlint
Joined: 14 Dec 2004 Posts: 6159 Location: Москва
|
(Separately) Posted: Tue Feb 03, 2009 21:41 Post subject: |
|
|
Вахмурка wrote: | При работе в Нортоне под ДОС он тоже отказывается показывать больше 2000 файлов. Видимо, это ограничение операционной системы (ДОС то есть). Знатоки, я прав? |
Не слышал о таком ограничении… По крайней мере, точно сталкивался с тем, что команда dir в DOS'е выводила все файлы даже там, где Нортон упирался в свои 2000 (а именно — в каталоге I386 установочного диска WinXP). Так что если какие-то ограничения есть, то не принципиальные. _________________ Почему же, ё-моё, ты нигде не пишешь "ё"? |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Tue Feb 03, 2009 22:01 Post subject: |
|
|
gumanok wrote: | Но для xxcopy пришлось абсолютный путь прописывать. | Установили не в папку по умолчанию? Тогда нужно добавить её в переменную %PATH%
Вахмурка
DN (при >2000 файлов в каталоге) переставал сортировать, но выводил все файлы. |
|
Back to top |
|
|
Вахмурка
Joined: 27 Dec 2004 Posts: 2585 Location: Большая деревня Москва
|
(Separately) Posted: Tue Feb 03, 2009 22:10 Post subject: |
|
|
Quote: | Установили не в папку по умолчанию? | Если мне не изменяет память, по умолчанию xxcopy пытается ставиться в %systemroot%\system32. По-моему, это не есть хорошо. Во-первых, туда не будет доступа при отсутствии админских прав. Во-вторых, при сносе/переустановке оси придется переставлять и xxcopy. В-третьих, в системную директорию вообще не рекомендуется ничего писать (стирать оттуда тем паче), предоставив это оси.
Я еще со времен работы в ДОС усвоил: всегда указывая полные пути (без умолчаний), больше выигрываешь, чем теряешь. _________________ Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон) |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Tue Feb 03, 2009 22:23 Post subject: |
|
|
Вахмурка wrote: | Если мне не изменяет память... | Не изменяет
Вахмурка wrote: | ...всегда указывая полные пути (без умолчаний), больше выигрываешь, чем теряешь. | Чем аргументируешь? (кроме быстрого нахождения файла операционкой) |
|
Back to top |
|
|
|