Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Найти и переименовать
Goto page 1, 2  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
gumanok



Joined: 27 Jan 2009
Posts: 8

Post (Separately) Posted: Tue Jan 27, 2009 19:51    Post subject: Найти и переименовать Reply with quote

Подскажите, пожалуйста, можно ли переименовать много файлов, чтобы у каждого был свой шаблон? Т.е. что-то вроде "Найти и заменить" с множеством переменных. Стандартное поле не подходит, т.к. искать нужно больше 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
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Tue Jan 27, 2009 21:03    Post subject: Re: Найти и переименовать Reply with quote

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
Back to top
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Tue Jan 27, 2009 21:35    Post subject: Reply with quote

Если в именах нет пробелов, сработает команда
for /F "delims=" %a in (list.txt) do ren %a.jpg
Note: В конце строк текстового файла тоже не должно быть пробелов.
Back to top
View user's profile Send private message
gumanok



Joined: 27 Jan 2009
Posts: 8

Post (Separately) Posted: Tue Jan 27, 2009 22:58    Post subject: Reply with quote

Спасибо, получилось!
Back to top
View user's profile Send private message
gumanok



Joined: 27 Jan 2009
Posts: 8

Post (Separately) Posted: Wed Jan 28, 2009 11:08    Post subject: Сортировка по папкам Reply with quote

Теперь появилась новая задача.
Исходник тот же. Но каждому имени теперь принадлежат несколько файлов.

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

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
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Wed Jan 28, 2009 22:09    Post subject: Reply with quote

Команда
for /F "delims=" %a in (list.txt) do xxcopy /RCY /YY %a\
Условия те же, что в третьем посте.
xxcopy скачать здесь
Back to top
View user's profile Send private message
gumanok



Joined: 27 Jan 2009
Posts: 8

Post (Separately) Posted: Sun Feb 01, 2009 01:46    Post subject: Reply with quote

У меня получилось переименовать файлы через батник.

Команда 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
View user's profile Send private message
Вахмурка



Joined: 27 Dec 2004
Posts: 2584
Location: Большая деревня Москва

Post (Separately) Posted: Sun Feb 01, 2009 02:05    Post subject: Reply with quote

Попробуй прописать полный путь к файлу list.txt (для xxcopy.exe, кстати, справедливо то же). Если путь содержит пробелы, возможны сложности.
_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Back to top
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Sun Feb 01, 2009 02:47    Post subject: Reply with quote

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
View user's profile Send private message
gumanok



Joined: 27 Jan 2009
Posts: 8

Post (Separately) Posted: Mon Feb 02, 2009 16:47    Post subject: Reply with quote

Все сработало! Но для xxcopy пришлось абсолютный путь прописывать.
На растаскивание 50 тыс файлов ушло 6 часов.

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

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

xxcopy - вещь!
Back to top
View user's profile Send private message
Вахмурка



Joined: 27 Dec 2004
Posts: 2584
Location: Большая деревня Москва

Post (Separately) Posted: Tue Feb 03, 2009 20:57    Post subject: Reply with quote

Quote:
Но для xxcopy пришлось абсолютный путь прописывать.
...О чем и предупреждали большевики:
Вахмурка wrote:
Попробуй прописать полный путь к файлу list.txt
Quote:
батник 50 тыс файлов переименовать не смог. Доходил до 2 тысяч и сбрасывался.
При работе в Нортоне под ДОС он тоже отказывается показывать больше 2000 файлов. Видимо, это ограничение операционной системы (ДОС то есть). Знатоки, я прав?
Quote:
xxcopy - вещь!
Поддерживаю и одобряю.
_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 6151
Location: Москва

Post (Separately) Posted: Tue Feb 03, 2009 21:41    Post subject: Reply with quote

Вахмурка wrote:
При работе в Нортоне под ДОС он тоже отказывается показывать больше 2000 файлов. Видимо, это ограничение операционной системы (ДОС то есть). Знатоки, я прав?

Не слышал о таком ограничении… По крайней мере, точно сталкивался с тем, что команда dir в DOS'е выводила все файлы даже там, где Нортон упирался в свои 2000 (а именно — в каталоге I386 установочного диска WinXP). Так что если какие-то ограничения есть, то не принципиальные.
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Tue Feb 03, 2009 22:01    Post subject: Reply with quote

gumanok wrote:
Но для xxcopy пришлось абсолютный путь прописывать.
Установили не в папку по умолчанию? Тогда нужно добавить её в переменную %PATH%

Вахмурка
DN (при >2000 файлов в каталоге) переставал сортировать, но выводил все файлы.
Back to top
View user's profile Send private message
Вахмурка



Joined: 27 Dec 2004
Posts: 2584
Location: Большая деревня Москва

Post (Separately) Posted: Tue Feb 03, 2009 22:10    Post subject: Reply with quote

Quote:
Установили не в папку по умолчанию?
Если мне не изменяет память, по умолчанию xxcopy пытается ставиться в %systemroot%\system32. По-моему, это не есть хорошо. Во-первых, туда не будет доступа при отсутствии админских прав. Во-вторых, при сносе/переустановке оси придется переставлять и xxcopy. В-третьих, в системную директорию вообще не рекомендуется ничего писать (стирать оттуда тем паче), предоставив это оси.
Я еще со времен работы в ДОС усвоил: всегда указывая полные пути (без умолчаний), больше выигрываешь, чем теряешь.
_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Back to top
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Tue Feb 03, 2009 22:23    Post subject: Reply with quote

Вахмурка wrote:
Если мне не изменяет память...
Не изменяет
Вахмурка wrote:
...всегда указывая полные пути (без умолчаний), больше выигрываешь, чем теряешь.
Чем аргументируешь? Cool (кроме быстрого нахождения файла операционкой)
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander All times are GMT + 4 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group