Aqui está um script em lote simples que executa a tarefa que você solicitou:
@echo off
setlocal EnableDelayedExpansion
for /f "delims=. tokens=1-3" %%l in ('dir /a-d /b') do (
set FILENAME=%%l
set EXTENSION=%%m
set PARTNUMBER=%%n
if defined PARTNUMBER (
ren ".\!FILENAME!.!EXTENSION!.!PARTNUMBER!" "!FILENAME!_!PARTNUMBER!.!EXTENSION!
) else (
echo The task cannot be accomplished on file !FILENAME!.!EXTENSION!.
)
)
pause
Esse script executa um ciclo for
que decompõe o nome de cada arquivo colocado na pasta em que o arquivo em lote é iniciado; Ele usa o caractere .
como um delimitador para os vários tokens. Então, se o nome do arquivo incluir três tokens diferentes, ele será renomeado como no exemplo da sua pergunta; caso contrário, o arquivo não será renomeado. Essa condição permite excluir os arquivos comuns com um nome simples e uma extensão desta operação. Infelizmente, não tenho certeza se o 7-Zip poderá descompactar o arquivo original após essa renomeação.