Для удаления любых символов 0-9.-_
в конце имени файла без расширения:
:: Q:\Test\2019\05\30\SO_56380430.cmd
@Echo off
for %%A in (
"test java-1.0.0.jar"
compile-java-1.11.1.jar
poc-java-1.2.22.jar
some-thing-1.2.32.jar
) do call :StripVer "%%~A"
Goto :Eof
:StripVer
set "Name=%~n1"
:loop
Echo %Name:~-1%|findstr "[0-9._-]" >Nul && (set "Name=%Name:~0,-1%"&Goto :loop)
Echo Original name : %~1
Echo w/o version : %Name%%~x1
Echo:
Пример вывода:
> Q:\Test\2019\05\30\SO_56380430.cmd
Original name : test java-1.0.0.jar
w/o version : test java.jar
Original name : compile-java-1.11.1.jar
w/o version : compile-java.jar
Original name : poc-java-1.2.22.jar
w/o version : poc-java.jar
Original name : some-thing-1.2.32.jar
w/o version : some-thing.jar
Этот метод довольно медленный.
Один вкладыш в PowerShell будет намного быстрее.
Get-ChildItem *.jar|Rename-Item -NewName {$_.Basename.trimend('0123456789.-_')+$_.Extension} -WhatIf
Удалите трейлинг -WhatIf
, если вывод выглядит нормально.
Это может быть заключено в строку / командный файл cmd
powershell -Nop -C "Get-ChildItem *.jar|Rename-Item -NewName {$_.Basename.trimend('0123456789.-_')+$_.Extension} -WhatIf"