Вопрос: Как можно массовое переименование файлов?


У меня есть куча файлов с именем с шаблоном 99 - DescriptiveName.txt и я хотел бы удалить номер с фронта, поэтому у меня просто есть DescriptiveName.txt,

Как я могу это сделать? Могу ли я сделать это из командной строки или есть утилита, которая может это сделать?


116


Источник




Ответы:


Я знаю, что в вашем названии вы говорите «в dos», но у меня создается впечатление, что вы просто ищете способ сделать это и задаетесь вопросом, лучший ли это.

Абсолютным лучшим инструментом, который я нашел для этого, является Утилита переименования пакетов,

Bulk Rename Utility

Это не инструмент командной строки, но у них есть версия командной строки если вы действительно хотите использовать его таким образом.

Я часто использовал версию GUI, и она очень мощная, очень быстрая и чрезвычайно простая в использовании.

О, и это СВОБОДНО для личного пользования.


91



К сожалению, инструмент не является бесплатным для коммерческого использования :( - AntonK
Вот почему я сказал, что это бесплатно для личного использования. - Jim McKeeth
Это сверхбыстрый инструмент. Он решил проблему с моими 6.000 файлами за считанные секунды, используя несколько логик поиска и замены. Это похоже на использование Notepad ++, но редактирование тысяч файлов. Отличное решение, спасибо! - Peanuts


Небольшой скрипт PowerShell:

$args | Rename-Item -NewName { $_.Name.ToLower() -replace '\d+ - ' }

В сочетании с более сложными регулярными выражениями это может выглядеть примерно так:

ls | Rename-Item -NewName {$_ -replace '(\d+) - (.*).mp3', '$2 - $1.mp3' }

Который превращает такие вещи, как '01 - Начало.mp3 'в' Beginning - 01.mp3 '.

Использовать -WhatIf параметр on Rename-Item для проверки переименований перед их выпуском.


54



@sysrqb, пожалуйста, исследуйте немного больше. - Joey
Не требует ли замена двух строковых выражений? Второй - два, первый - нет. ... -replace '\d+ - ','', Кроме того, я считаю, что первое лучше, просто сбрасывая начало с помощью регулярного выражения. Хотя я считаю, что вы должны включить якорь в начале выражения, чтобы он соответствовал именам, начинающимся с цифр. - Xalorous
@Xalorous: Ну, вы могли бы просто попробовать. -replace может иметь только один аргумент с правой стороны, и в этом случае вторая неявно является пустой строкой. - Joey
Это спасло меня. Утилита Bulk Rename Utility только что сработала, и я попробовал так много других решений. Это лучше для людей, которым нравится регулярное выражение. Огромное спасибо !! - Inkh Su Tesou


AntRenamer упрощает определение шаблона переименования; есть много уже подготовленных (и это дает предварительный просмотр действий):

AntRenamer

Бесплатно для личного и коммерческого использования.


24





Если вы действительно хотите использовать командную строку Windows (если вы не хотите что-то скачивать), вы можете сделать это следующим образом:

dir /B > fileList.txt
for /f "tokens=1,2,3" %i in (fileList.txt) DO ren "%i %j %l" %l

Первая строка выводит список файлов в файл с именем fileList.txt. Вторая строка разделяет каждое из имен в списке на 3 части, #, «-» и остальную часть имени. Для каждого из них команда переименования.


23



Удалите первую строку, чтобы упростить ее и выполните: for /f "tokens=1,2,3" %i in ('dir /B') DO ren "%i %j %l" %l
Я знаю, что это старый, но он по-прежнему является солидным ответом - только% l (% L) должен быть% k (% K) [приращение токенов от% i (% I), так что I, J, K ...] - ongle


старая школа:

Вы можете сделать DIR и перенаправить вывод в файл, как в DIR * .TXT> TEMP.BAT

Затем используйте редактор, чтобы вынуть то, что вам не нужно, и изменить нужные вам части. Добавьте «@echo off» в верхнюю строку, сохраните ее и запустите.


18



Я получил ссылку на эту страницу из докторантуры старой школы: dostips.com/DosCommandIndex.htm; Удивительно, что вы можете делать с (добрым?) Старым DOS! - nik


Другой вариант: Массивный файловый Renamer

Это позволяет легко переименовать множественный файлы и расширения файлов, Это очень быстро и просто!

Для опытных пользователей и разработчиков можно использовать обычные выражения,

Смотрите в действии:

enter image description here


16



Btw, как мы можем выбрать его, чтобы открыть все файлы в подпапках? У меня есть корневая папка с примерно 50 подпапками (рекурсивно) и несколькими файлами внутри них. - Pacerier
@Pacerier Я думаю, что выбор файла Java не позволяет этого. У меня возникла идея разрешить выбор папки и включить рекурсивный поиск. Отмечу это и добавлю в будущую версию! - IvanRF


я использую Total Commander(ctrl + M) для таких вещей. Их полезный инструмент, который слишком много для подсчета, прост в использовании, а также может при необходимости использовать регулярные выражения и шаблоны. О, и это, очевидно, дает вам предварительный просмотр, прежде чем вносить какие-либо изменения.

Это третий или четвертый вопрос, на который я ответил, рекомендуя Total Commander ... Я должен получать от них комиссию ;-)


12