Код:
@Echo Off
SetLocal EnableDelayedExpansion
For %%I In (*.msp) Do (
Set nam=%%~nI
Rem отрезаем от имени без расширения все, что может быть до KB (например, Windows6.1-KB2511455-x86.msp)
Set nam=!nam:*KB=KB!
Rem теперь KB у нас первое, делим имя по разделителю '-' и берем только первую часть
For /f "delims=-" %%a In ("!nam!") Do (
>>"Inst.cmd" Echo start /wait msiexec /update %%I /qb-^^!
>>"Inst.cmd" Echo Set /a i+= 1
>>"Inst.cmd" Echo ECHO Установка обновления %%a завершена - %%i%%
>>"Inst.cmd" Echo.
)
)