Страница 1 из 1

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

Добавлено: 14 апр 2014, 23:22
Waterbyte
есть дочерта файлов, разложенных по разным директориям, которые именованы в формате "MMM D YYYY - AAAAAAA". задача - переименовать их всех в формат "YYYY-MM-DD - AAAAAAA", оставив на тех же местах. врукопашную это делать неохота, да и неумно. есть такая программка, которую можно натравить на эти файлы? заранее спасиб.

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

Добавлено: 15 апр 2014, 00:49
LeoV

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

Добавлено: 15 апр 2014, 01:28
Waterbyte
спасибо, но без ста грамм разобраться пока не удалось. оставлю до пятницы...

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

Добавлено: 15 апр 2014, 09:26
Marmot
Проще самому программульку наваять :)

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

Добавлено: 15 апр 2014, 09:45
Шэф
Можно.
Если по-быстрому, то в Total Cmd кажется начиная с 8-й версии в верхнем меню есть Multi-Rename Tool.
А если из кучи мест да с хитрой заменой и пр перетасовками, то она так и называется ReNamer by Denis Kozlov, ver 5.60 работает на 2К8 и вин 7, на вин 8 не знаю.

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

Добавлено: 15 апр 2014, 11:52
Groundhog
"Проще самому программульку наваять" +1000
Пару месяцев назад для себя сделал - нечто подобное - задолбали фото-файлы - разбросаны были щедрой рукой сеятеля по всяческим памятным местам. Пришлось ваять - мета данные из всяких графи файлов читать даты извлекать в МонгоДБ запихивать, файлы сгребать по годам, месяцам - директориям. Ну чичас зато лепота - сидят не пикнут
да еще маппед в МонгеДеБильном.

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

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

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

Если надо работать с фото и что-то массово изменить кроме имени- http://www.faststone.org/FSViewerDetail.htm там хороший инструментарий.

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

Добавлено: 15 апр 2014, 18:54
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.
:)

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

Добавлено: 16 апр 2014, 00:43
Waterbyte
кроме (|) ничего не понял...

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

Добавлено: 16 апр 2014, 13:54
QueenR
Муж использует вот эту программульку. Говорит интуитивно и просто. (от ИТ индустрии далек как от китая)

http://www.bulkrenameutility.co.uk/Main_Intro.php

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

Добавлено: 16 апр 2014, 23:50
pashevich
Waterbyte писал(а):"MMM D YYYY - AAAAAAA" переименовать их всех в формат "YYYY-MM-DD - AAAAAAA".
Обычно через Total Commander можно извлекать разные атрибуты файлов, вплоть до регулярных выражений по имени файла, если дата создания/изменения не соответствует действительности или нужно извлечь определенную строку, как в вашем примере. Меню "файлы->групповое переименование" http://wincmd.ru/plugring/totalcmd.html

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

Добавлено: 17 апр 2014, 00:05
Waterbyte
чё-то ничего не подходит. отупел от времени, похоже. а на VBA ничё такого не наваяно? а то в екселевском спредшыте я могу "переименовать" легко, вместе с полными путями, а как это потом в операционную систему передать - не в курсе. помниццо из юности, была ещё такая утилита "grep", с помощью неё в досовских батч-файлах дикие чудеса можно было творить. неужели не написали с тех пор ничего более цивилизованного? блин, хоть снова ставить акссесс и вспоминать, что я в нём делал двадцать лет назад...

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

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

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

В vba через file system object тоже элементарно сделать, но пример писать лень
Или еще более прямолинейно - скармливать в цикле те же три колонки вибиашной команде Shell или методу run объекта wshshell

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

Добавлено: 17 апр 2014, 15:34
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".

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

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

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