1

У меня есть фрагмент кода пакетного сценария, который работает:

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

, но с одной проблемой:

он выводит одиночные обратные слеши! Что еще хуже, программа, вызываемая в цикле , не имеет возможности использовать прямую косую черту вместо обратной косой черты!

Код выводится так в файл:

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

Есть ли способ получить вывод программы, вызываемой в цикле, для вывода прямой, а не обратной, со стороны сценария?

1 ответ1

2

Есть ли способ вывода прямой косой черты вместо обратной?

Да, используя переменную Edit/Replace.

Используйте следующий код:

@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

Дальнейшее чтение

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .