2015-12-08 4 views
0

Итак, у меня есть много mp3-файлов на моем компьютере с Windows 10, который я хочу переименовать с подходящим нулевым префиксом EG переименовать «mysong1.mp3» в «mysong001.mp3» этой партии файл я нашел работает отлично до 10 файла:Переименование пакетного файла с номером с префиксом 00 0

@echo off 
setlocal EnableDelayedExpansion 
set i=0 
for %%a in (*.mp3) do (
    set /a i+=1 
    ren "%%a" "mysong00!i!.new" 
) 
ren *.new *.mp3 

после 9-го файла я получаю «mysong0010.mp3», «mysong0011.mp3» и т.д., и после 99-го файла «mysong00100.mp3». То, что я хочу, это «mysong010.mp3», «mysong100.mp3» и т. Д. Я провел некоторое исследование операторов if и подобных файлов в пакетных файлах, но я не мог полностью понять его.

Так что мой вопрос: как я могу заставить его работать, как я этого хочу?

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

ответ

3

Просто небольшое изменение - это все, что вам нужно.

@echo off 
setlocal EnableDelayedExpansion 
set i=0 
for %%a in (*.mp3) do (
    set /a i+=1 
    set num=00!i! 
    ren "%%a" "mysong!num:~-3!.new" 
) 
ren *.new *.mp3 
+0

Я был слишком быстр в принятии ответа, который кажется. Где именно я помещаю num? Теперь он переименовал первый файл, который он нашел в «mysong.mp3», а затем вернулся бесчисленное количество раз «Дублированный файл существует или файл не может быть найден». Я положил «set num = 00! I!» после увеличения i и замены ren я отправил с вашей. – Arrrow

+0

@Arrrow, обновленный с вашим исходным кодом. – Squashman

+0

Это именно то, что у меня было. Все еще дает мне ту же ошибку. – Arrrow

Смежные вопросы