У меня есть коллекция файлов, имена которых имеют вид car-#######-NNNNNNN.xxx , где ####### - это серия чисел, которые должны храниться как часть имени файла, а xxx - это расширение, обозначающее формат файла, например, "jpg", "bmp" или "png". ", который также необходимо сохранить. Мне нужно удалить car- и -NNNNNNN (дублирование -####### от имени файла, оставляя только #######.xxx .

Возможно ли это и как я могу это сделать?

3 ответа3

0

Ответ Винаяка выглядит нормально, если ваш ####### всегда ровно семь символов.  Если количество символов может варьироваться, и вы хотите работать с разделителем, а не с количеством, попробуйте

for /f "delims=-. tokens=1-4" %a in ('dir /b/a-d car-*-*.*') ^
                                    do @echo ren %a-%b-%c.%d %b.%d

Запустите его и, если он покажет вам правильные команды переименования, удалите echo и запустите его снова.  Я разделил это на две строки, чтобы они поместились на экране; если вы предпочитаете, вы можете сделать все это одной строкой (удалить ^).  Если вы поместите это в скрипт (пакетный файл), измените все вхождения % на %% .

Предупреждение: если ваш NNNNNNN не всегда является дубликатом вашего #######, например, у вас есть файлы с именами car-1234567-1234567.jpg и car-1234567-9999999.jpg , он переименует первый найденный файл и дать сообщения об ошибках для других.

0

Скопируйте этот текст в текстовый редактор (Блокнот) и сохраните файл с именем rename.bat в папку, где находятся файлы, и запустите его.

Измените xxx в строке IF %ext% EQU xxx ren %1 "%fnum%.%ext%" на любое расширение, в котором сохранены ваши файлы.

@ECHO OFF
for /f "tokens=*" %%i ^
in ('forfiles /d +0 /c "cmd /c if @isdir==FALSE echo @file"') ^
do call :subroutine %%i
pause

:subroutine
set fname=%1
set ext=%fname:~-4,3%
set fnum=%fname:~5,7%
REM echo %fnum%
REM echo %ext%
IF %ext% EQU xxx ren %1 "%fnum%.%ext%"
0

Файловый менеджер Windows не предоставляет сложных функций переименования нескольких файлов с использованием шаблонов или регулярных выражений (в отличие от обычных файловых менеджеров).

Я бы порекомендовал делать работу под Linux, если у вас есть дистрибутив Linux. Просто используйте Nautilus, и вы сможете массово переименовать и использовать функцию поиска / замены на основе шаблонов.

В качестве альтернативы, если у вас нет доступа к дистрибутиву Linux, попробуйте установить Total Commander. Этот файловый менеджер обладает хорошей функциональностью массового переименования. Вы также можете прочитать хорошее руководство на этой странице.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .