5

У меня есть около 1200 песен в папке, имена файлов которой структурированы следующим образом:

имя исполнителя - имя песни.mp3

Например:

Billy Joel - Piano Man.mp3
The Beatles - Nowhere Man.mp3

Я хотел бы использовать команды DOS в Windows PowerShell для массового переименования этих файлов, чтобы удалить место с обеих сторон дефиса. Однако я не хочу удалять все пробелы. Основная проблема заключается в том, чтобы иметь возможность включать пробелы в спецификации имени файла, чтобы изменить "-" на "-" во всех файлах в каталоге. Вот несколько примеров того, что я хотел бы изменить:

Существующие имена файлов

Billy Joel - Piano Man.mp3
The Beatles - Nowhere Man.mp3

Желаемые имена файлов

Billy Joel-Piano Man.mp3
The Beatles-Nowhere Man.mp3

Может кто-нибудь придумать команду DOS, которая может быть выполнена в командной строке, чтобы внести такое изменение во все файлы в каталоге?

Я обнаружил, что для перечисления всех таких файлов с помощью команды DIR я могу использовать:

DIR asterisk+doublequote+space+hyphen+space+doublequote+asterisk+dot+asterisk

Я должен был написать это таким образом, потому что фактический синтаксис выглядит как инструкции по форматированию здесь на этом форуме.

Это список всех файлов, которые имеют 3-символьную строку пробела-дефиса.

Конечно, должен быть способ.

2 ответа2

2

Вы можете запустить эту команду:

ls | %{ ren $_ ($_.name -replace ' - ','-') }

используя Powershell. Это заменяет {space}-{space} на - .

1

Вы можете использовать программу File Manager, такую как « Total Commander », которая имеет очень мощную встроенную функцию массового переименования.

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