Читая help for
и упражнения?
Давайте серьезно, вам не нужно регулярное выражение здесь (если так, то вам будет лучше использовать vbscript или Powershell)
Этот пакет генерирует DoRename.cmd
вы можете пересмотреть и выполнить позже. Измените Basefld
чтобы соответствовать вашей среде.
@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
Эта вторая партия не имеет ненужных ремней безопасности и немедленно переименует файлы в текущем каталоге и подкаталогах.
@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"
Первый для обхода дерева для файлов, второй анализирует имя файла и расширение.
delims = _ разбивает имя на токены.
token1 aka %% B - это ´vm´ token2 %% C - текст между первыми двумя подчеркиваниями и token3 *
%% D - остальная часть имени, включая .ext.