Переименовать кучу файлов

Все, что вы хотели знать о программизме, но боялись спросить.
Ответить
Аватара пользователя
Waterbyte
Графоман
Сообщения: 48035
Зарегистрирован: 10 авг 2007, 13:43

Переименовать кучу файлов

Сообщение Waterbyte »

есть дочерта файлов, разложенных по разным директориям, которые именованы в формате "MMM D YYYY - AAAAAAA". задача - переименовать их всех в формат "YYYY-MM-DD - AAAAAAA", оставив на тех же местах. врукопашную это делать неохота, да и неумно. есть такая программка, которую можно натравить на эти файлы? заранее спасиб.
Аватара пользователя
LeoV
Графоман
Сообщения: 14497
Зарегистрирован: 02 июн 2012, 15:41
Откуда: Графство O'Mан
Контактная информация:

Re: Переименовать кучу файлов

Сообщение LeoV »

Аватара пользователя
Waterbyte
Графоман
Сообщения: 48035
Зарегистрирован: 10 авг 2007, 13:43

Re: Переименовать кучу файлов

Сообщение Waterbyte »

спасибо, но без ста грамм разобраться пока не удалось. оставлю до пятницы...
Аватара пользователя
Marmot
Графоман
Сообщения: 39328
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Caulfeild
Контактная информация:

Re: Переименовать кучу файлов

Сообщение Marmot »

Проще самому программульку наваять :)
Аватара пользователя
Шэф
Маньяк
Сообщения: 2992
Зарегистрирован: 22 сен 2007, 12:51

Re: Переименовать кучу файлов

Сообщение Шэф »

Можно.
Если по-быстрому, то в Total Cmd кажется начиная с 8-й версии в верхнем меню есть Multi-Rename Tool.
А если из кучи мест да с хитрой заменой и пр перетасовками, то она так и называется ReNamer by Denis Kozlov, ver 5.60 работает на 2К8 и вин 7, на вин 8 не знаю.
Аватара пользователя
Groundhog
Графоман
Сообщения: 5101
Зарегистрирован: 20 авг 2005, 16:36
Откуда: Vancouver

Re: Переименовать кучу файлов

Сообщение Groundhog »

"Проще самому программульку наваять" +1000
Пару месяцев назад для себя сделал - нечто подобное - задолбали фото-файлы - разбросаны были щедрой рукой сеятеля по всяческим памятным местам. Пришлось ваять - мета данные из всяких графи файлов читать даты извлекать в МонгоДБ запихивать, файлы сгребать по годам, месяцам - директориям. Ну чичас зато лепота - сидят не пикнут
да еще маппед в МонгеДеБильном.
tfrog
Пользователь
Сообщения: 71
Зарегистрирован: 21 сен 2009, 04:38
Откуда: Хабаровск -> Ванкувер -> Северная Альберта

Re: Переименовать кучу файлов

Сообщение tfrog »

Waterbyte писал(а):есть дочерта файлов, разложенных по разным директориям, которые именованы в формате "MMM D YYYY - AAAAAAA". задача - переименовать их всех в формат "YYYY-MM-DD - AAAAAAA", оставив на тех же местах. врукопашную это делать неохота, да и неумно. есть такая программка, которую можно натравить на эти файлы? заранее спасиб.
http://www.antp.be/software/renamer - там много функций, инструмент простой.

Про ReNamer уже сказали.

Если надо работать с фото и что-то массово изменить кроме имени- http://www.faststone.org/FSViewerDetail.htm там хороший инструментарий.
rgx
Пользователь
Сообщения: 125
Зарегистрирован: 06 сен 2009, 21:07
Откуда: Toronto

Re: Переименовать кучу файлов

Сообщение rgx »

http://technet.microsoft.com/en-us/libr ... 15353.aspx
Example 4
C:\PS>get-childItem *.txt | rename-item -newname { $_.name -replace '\.txt','.log' }
Description
-----------
This example shows how to use the Replace operator to rename multiple files, even though the NewName parameter does not accept wildcard characters.
This command renames all of the .txt files in the current directory to .log.
The command uses a Get-ChildItem cmdlet to get all of the files in the current directory that have a .txt file name extension. Then, it uses the pipeline operator (|) to send the resulting files to the Rename-Item cmdlet.
In the Rename-Item command, the value of the NewName parameter is a script block that is executed before the value is submitted to the NewName parameter.
In the script block, the $_ automatic variable represents each file object as it comes to the command through the pipeline. The command uses the dot format (.) to get the Name property of each file object. The Replace operator replaces the ".txt" file name extension of each file with ".log".
Because the Replace operator works with regular expressions, the dot preceding "txt" is interpreted to match any character. To ensure that it matches only a dot (.), it is escaped with a backslash character (\). The backslash character is not required in ".log" because it is a string, not a regular expression.
:)
Аватара пользователя
Waterbyte
Графоман
Сообщения: 48035
Зарегистрирован: 10 авг 2007, 13:43

Re: Переименовать кучу файлов

Сообщение Waterbyte »

кроме (|) ничего не понял...
QueenR
Маньяк
Сообщения: 2425
Зарегистрирован: 24 сен 2006, 10:17
Откуда: Coquitlam, BC

Re: Переименовать кучу файлов

Сообщение QueenR »

Муж использует вот эту программульку. Говорит интуитивно и просто. (от ИТ индустрии далек как от китая)

http://www.bulkrenameutility.co.uk/Main_Intro.php
Аватара пользователя
pashevich
Завсегдатай
Сообщения: 359
Зарегистрирован: 14 дек 2007, 10:44

Re: Переименовать кучу файлов

Сообщение pashevich »

Waterbyte писал(а):"MMM D YYYY - AAAAAAA" переименовать их всех в формат "YYYY-MM-DD - AAAAAAA".
Обычно через Total Commander можно извлекать разные атрибуты файлов, вплоть до регулярных выражений по имени файла, если дата создания/изменения не соответствует действительности или нужно извлечь определенную строку, как в вашем примере. Меню "файлы->групповое переименование" http://wincmd.ru/plugring/totalcmd.html
Аватара пользователя
Waterbyte
Графоман
Сообщения: 48035
Зарегистрирован: 10 авг 2007, 13:43

Re: Переименовать кучу файлов

Сообщение Waterbyte »

чё-то ничего не подходит. отупел от времени, похоже. а на VBA ничё такого не наваяно? а то в екселевском спредшыте я могу "переименовать" легко, вместе с полными путями, а как это потом в операционную систему передать - не в курсе. помниццо из юности, была ещё такая утилита "grep", с помощью неё в досовских батч-файлах дикие чудеса можно было творить. неужели не написали с тех пор ничего более цивилизованного? блин, хоть снова ставить акссесс и вспоминать, что я в нём делал двадцать лет назад...
Аватара пользователя
Yury
The L'ony
Сообщения: 26202
Зарегистрирован: 22 янв 2004, 13:48
Откуда: Мирный -> Vancouver
Контактная информация:

Re: Переименовать кучу файлов

Сообщение Yury »

Waterbyte писал(а):чё-то ничего не подходит. отупел от времени, похоже. а на VBA ничё такого не наваяно? а то в екселевском спредшыте я могу "переименовать" легко, вместе с полными путями, а как это потом в операционную систему передать - не в курсе. помниццо из юности, была ещё такая утилита "grep", с помощью неё в досовских батч-файлах дикие чудеса можно было творить. неужели не написали с тех пор ничего более цивилизованного? блин, хоть снова ставить акссесс и вспоминать, что я в нём делал двадцать лет назад...
Ну можно и дедовским способом в екселе - создаешь три колонки:
1) ren
2) старое имя файла с полным путём (если есть пробелы внутри, то закавычить не забудь)
3) новое имя файла без пути

Сохраняешь как текстовый файл разделенный пробелами
Переименовываешь в .bat
Запускаешь этот бат из коммандной строки и радуешься результату

В vba через file system object тоже элементарно сделать, но пример писать лень
Или еще более прямолинейно - скармливать в цикле те же три колонки вибиашной команде Shell или методу run объекта wshshell
Аватара пользователя
alpax
Графоман
Сообщения: 10706
Зарегистрирован: 04 мар 2003, 17:39
Откуда: Richmond, BC

Re: Переименовать кучу файлов

Сообщение alpax »

Yury писал(а):Ну можно и дедовским способом в екселе - создаешь три колонки:
1) ren
2) старое имя файла с полным путём (если есть пробелы внутри, то закавычить не забудь)
3) новое имя файла без пути

Сохраняешь как текстовый файл разделенный пробелами
Переименовываешь в .bat
Запускаешь этот бат из коммандной строки и радуешься результату
Хе... я часто так и делаю, когда лень сочинять регекспы для плагина в фаре - просто загоняю список файлов в текстовый файл или отметив и Ctrl-Ins, или "dir /b/s>process.bat", потом в том же фаре копирую колонку имен, меняю новое имя, подписываю "ren ", и запускаю. Если в одном каталоге, еще проще - для отмеченных файлов запускаю "echo ren !.!>>process.bat" - т.е. уже половина команды готова, потом только копирую столбик имен, меняю как надо и запускаю.

В случае же исходной поставленной задачи явно подойдет любая переименовалка с регекспами. Я бы использовал плагин S&R для Far с его функцией Rename - искать что-то типа "(\d+) (\d+) (\d+) - (.+)", заменять на "$3-$2-$1 - $4".
Аватара пользователя
Waterbyte
Графоман
Сообщения: 48035
Зарегистрирован: 10 авг 2007, 13:43

Re: Переименовать кучу файлов

Сообщение Waterbyte »

Yury писал(а):Ну можно и дедовским способом в екселе - создаешь три колонки:
1) ren
2) старое имя файла с полным путём (если есть пробелы внутри, то закавычить не забудь)
3) новое имя файла без пути

Сохраняешь как текстовый файл разделенный пробелами
Переименовываешь в .bat
Запускаешь этот бат из коммандной строки и радуешься результату
дичь. варварство. каменный век. но должно сработать. пожалуй, так и сделаю :)
Ответить