apenas um comando de console para renomear de "* .mp3" para "bb * .mp3" - funciona:
for /f "delims=" %i in ('dir /b /on /a-d *.mp3') do ren "%i%" "b.b%i"
mas se você quiser em etapas, será mais difícil, como a minha solução em Como renomear 80.000 arquivos de uma vez no Windows - Eu os editei para as suas necessidades :), totalmente testado, e ele também procura em subpastas:
- crie um arquivo em lotes com os seguintes comandos
- altere os parâmetros das variáveis para o que você deseja
- caminho: coloque "" dentro do caminho raiz dos seus arquivos (por exemplo, "C: \ documentos e configurações \ usuário \ área de trabalho \ nova pasta"
- numfirstchars2replaceX: coloque um número com os primeiros caracteres a serem substituídos pela etapa eaxh X (no seu caso, numfirstchars2replace1 = 0, numfirstchars2replace2 = 1, numfirstchars2replace1 = 1)
- str2putX: coloque uma string para ser adicionada como um prefixo do novo nome de arquivo para cada etapa X (no seu caso, str2put1 = a, str2put2 = bb, str2put3 = b.)
- executá-lo em uma pasta diferente de onde os arquivos são
@echo off
::only to tell user what this bat are doing
echo.1.initializing...
::enable that thing to allow, for example, incremental counter in a for loop :)
echo.- EnableDelayedExpansion
SETLOCAL EnableDelayedExpansion
::variables
echo.- variables
:: - place here the absolute root path of your files
set path="put here absolute path where are the root folder of your files"
set pathbak=%cd%
set numfirstchars2replace1=0
set numfirstchars2replace2=1
set numfirstchars2replace3=1
set str2put1=a
set str2put2=bb
set str2put3=b.
::go to %path% and its driveletter
echo.- entering the path you want
for /f "delims=" %%i in ('echo.%path%') do %%~di
cd %path%
::search all subfolders and save them to a temp file
echo.- searching for subfolders
echo.%path%>%temp%\tmpvar.txt
for /f "delims=" %%i in ('dir /s /b /on /ad') do echo."%%i">>%temp%\tmpvar.txt
::execute command for root folder and all found subfolders
echo.
echo.2.executing...
echo.- step 1
for /f "delims=" %%i in (%temp%\tmpvar.txt) do (
cd %%i
echo.- in folder: %%i
for /f "delims=" %%j in ('dir /b /on /a-d *.mp3') do (
set newname=%%j
set newname=!newname:~%numfirstchars2replace1%,1000!
echo.- renaming from "%%j" to "%str2put1%!newname!"...
ren "%%j" "%str2put1%!newname!"
)
)
echo.- step 2
for /f "delims=" %%i in (%temp%\tmpvar.txt) do (
cd %%i
echo.- in folder: %%i
for /f "delims=" %%j in ('dir /b /on /a-d *.mp3') do (
set newname=%%j
set newname=!newname:~%numfirstchars2replace2%,1000!
echo.- renaming from "%%j" to "%str2put2%!newname!"...
ren "%%j" "%str2put2%!newname!"
)
)
echo.- step 3
for /f "delims=" %%i in (%temp%\tmpvar.txt) do (
cd %%i
echo.- in folder: %%i
for /f "delims=" %%j in ('dir /b /on /a-d *.mp3') do (
set newname=%%j
set newname=!newname:~%numfirstchars2replace3%,1000!
echo.- renaming from "%%j" to "%str2put3%!newname!"...
ren "%%j" "%str2put3%!newname!"
)
)
echo.
echo.3.exiting...
::return to %pathbak% and its driveletter
for /f "delims=" %%i in ('echo.%pathbak%') do %%~di
cd %pathbak%
@echo on