Obtendo saída de eco e substituindo barra invertida por barra

1

Eu tenho um snippet de código de script em lote que funciona:

echo %tmpfile%
for /R %1 %%G in (*.go) DO (
    echo %%G | findstr /i "test mock" || (
        rem filter out "test" files
        gocyclo "%%G" >> %tmpfile%
    )
)

, mas com um problema:

produz as únicas barras invertidas! Pior ainda, o programa sendo chamado no loop não tem opção de usar barra em vez de barra invertida!

O código é enviado assim para um arquivo:

2 utilities ValArrToPointerArr C:\Users\mwarren\Desktop\apiserver_sdk\utilities\utilities.go:178:1

Existe uma maneira de obter a saída do programa que está sendo chamado no loop, para gerar barras em vez de barras invertidas, do lado do script?

    
por Mike Warren 25.09.2018 / 22:35

1 resposta

2

Existe uma maneira de produzir barras em vez de barras invertidas

Sim, usando Editar / Substituir variável .

Use o seguinte código:

@echo off
setlocal enabledelayedexpansion
echo %tmpfile%
for /R %1 %%G in (*.go) DO (
  echo %%G | findstr /i "test mock" || (
    rem filter out "test" files
    gocyclo "%%G" >> output.txt
    rem replace \ with /
    for /f "tokens=*" %%i in ('type output.txt') do (
      set line=%%i
      set newline=!line:\=/!
      echo !newline!>>%tmpfile%
      )
   del /q output
   )
)
endlocal

Leitura Adicional

por 25.09.2018 / 23:18