Ao ler o help for
e o exercício?
Vamos ficar sérios, você não precisa de um regex aqui (em caso afirmativo, então seria melhor você usar vbscript ou Powershell)
Esse lote gera um DoRename.cmd
que você pode revisar e executar depois. CHange Basefld
para ajustar seu env.
@Echo off
Set Basefld=Q:\Test
Pushd %Basefld% ||(Echo can't cd to %Basefld%&Pause&Exit /B 1)
> DoRename.cmd (
For /F "Delims=" %%A in ('Dir /B/S "vm_*.txt"'
) DO For /F "tokens=1,2* Delims=_" %%B in ('Echo:%%~nxA'
) Do Echo Ren "%%~A" "%%D"
)
start "" Notepad.exe DoRename.cmd
Esse segundo lote não possui cintos de segurança desnecessários e renomeia imediatamente os arquivos nos diretórios e subdiretórios atuais.
@Echo off
For /F "Delims=" %%A in ('Dir /B/S "vm_*.txt"'
) DO For /F "tokens=1,2* Delims=_" %%B in ('Echo:%%~nxA'
) Do Ren "%%~A" "%%D"
O primeiro para anda a árvore para arquivos de fhe,
o segundo analisa o nome do arquivo e a extensão.
delims = _ divide o nome em tokens.
token1 aka %% B sendo ´vm´
token2 %% C o texto entre os dois primeiros sublinhados
e token3 *
%% D o resto do nome incluindo o .ext.