Переименование файловой подстроки - PullRequest
0 голосов
/ 13 ноября 2011

У меня есть куча файлов в каталоге (windows), которые я хочу переименовать, чтобы из каждого из них удалялась определенная последовательность символов. Например, я хочу удалить «-FFF» из имен файлов, которые похожи на приведенные ниже.

asd-dfj-FFF.mp3
dfd-sdj-FFF.mp3

Каков наилучший способ сделать это? Любой язык в порядке. Я знаю C & Java, поэтому я бы предпочел, чтобы это было на языке, не принадлежащем им, поэтому я могу изучать / видеть другой язык в действии.

Ответы [ 3 ]

1 голос
/ 13 ноября 2011

Я почти уверен, что вы можете сделать это только с помощью команды rename в оболочке Windows cmd, дополнительные языки не требуются.

Попробуйте это на несколькихтестовые файлы во временном каталоге:

C:\tmp\> ren *-FFF.mp3 *.mp3

(у меня нет окна, пригодного для проверки, но я помню, как это работало еще в дни DOS, и документы Microsoft предполагают, что оно все еще работает)

1 голос
/ 13 ноября 2011

Учитывая, что решений нет, я опубликую свое собственное решение.

Я создал следующий пакетный файл, который работает для моего случая, как требуется.Это удаляет имена файлов, к которым добавлен -aSBo.

::Change the *-aSBo.* to whatever files you want to strip
for %%f in (*-aSBo.*) do call :rename "%%f"

goto :eof

:rename
set var="%~n1
set var1=%~x1"
::Change the 0 (start) and -5 (end) values to match the substring start/end values that you want to rename to
ren %1 %var:~0,-5%%var1%
0 голосов
/ 13 ноября 2011

Я бы сказал, взгляните на Windows Power Shell, Perl или Python. Моим личным фаворитом был бы Python.

Все три вышеупомянутых языка являются языками сценариев и хорошо подходят для того, что вы хотите сделать.

...