Com um arquivo em lotes, você pode usar a substituição de seqüência de caracteres linha por linha para substituir as guias por quatro espaços:
@echo off
setlocal EnableDelayedExpansion
for /f "tokens=* delims=" %%a in ('hg diff') do (
set __temp=%%a
echo !__temp: = !
)
endlocal
O EnableDelayedExpansion permitiu o uso de !
s e a modificação de variáveis dentro do loop for
.
Parece que inserir código nessa resposta substituiu a guia por três espaços. Quando você copia isso para um arquivo de lote, verifique se há um caractere de tabulação real entre :
e =
na linha echo
.
Se você tiver aspas simples no comando que precisa executar (na verdade, não sei a sintaxe completa de hg diff
), será necessário delimitá-las com backquotes e ativar usebackq
. O que significa que você não pode usar backquotes no comando que precisa executar. Escolha um.
Versão com backquoted:
@echo off
setlocal EnableDelayedExpansion
for /f "usebackq tokens=* delims=" %%a in ('hg diff') do (
set __temp=%%a
echo !__temp: = !
)
endlocal