Não, você não pode fazer operações contra os grupos de captura em linha com o mecanismo de regex embutido. O que você pode fazer é ser muito esperto e usar um regex para escrever automaticamente um script que fará o trabalho que você quer, então execute o script e salve a saída desse script.
Regex para capturar os números:
^stat ?([0-9]+), ?([0-9]+), ? ([0-9]+)$
Explicação do regex:
-
^
início de uma linha - string literal "stat"
-
?
espaço opcional -
([0-9]+)
correspondência gulosa de qualquer sequência numérica, 1 ou mais caracteres. -
,
literal de vírgula -
?
espaço opcional -
([0-9]+)
correspondência gulosa de qualquer sequência numérica, 1 ou mais caracteres. -
,
literal de vírgula -
?
espaço opcional -
([0-9]+)
correspondência gulosa de qualquer sequência numérica, 1 ou mais personagens. -
$
fim da linha
Você pode soltar isso no seu campo de localização, marcando para pesquisar como uma pesquisa de regex. Em seguida, no campo "Substituir por", você pode soltar a seguinte expressão:
@set /a sa=-2\n@set /a sb=-1\n@set /a sc=-1\necho stat %sa%, %sb%, %sc%\n
Você pode então pressionar replace-all e salvar o texto recém-gerado em um arquivo de lote e executá-lo, o que imprimirá seus valores modificados. Isso não levará 100% do caminho para um mecanismo totalmente automatizado. Você precisaria ter uma variável extra à qual você anexaria cada nova linha e, em seguida, imprimi-la apenas uma vez para obter uma saída limpa. Você pode enviar um pipe direto para um arquivo. Mas isso te deixa 99% do caminho até lá.