Dapatkan output gema dan ganti backslash dengan forward slash


1

Saya memiliki potongan kode skrip batch yang berfungsi:

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

, tetapi dengan satu masalah:

itu menghasilkan garis miring terbalik tunggal! Lebih buruk lagi, program yang dipanggil dalam loop tidak memiliki opsi untuk menggunakan garis miring bukan garis miring terbalik!

Kode ini menghasilkan seperti ini ke file:

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

Apakah ada cara untuk mendapatkan output dari program yang dipanggil dalam loop, untuk menghasilkan garis miring bukan garis miring, dari sisi script?



Bagaimana cara kerjanya dalam konteks ini? Saya tahu Anda bisa melakukannya %f:\=/%, tetapi untuk nilai apa yang akan saya atur f? Mengubah pernyataan paling dalam dari for loop menjadi sebagai berikut: gocyclo "%%G:\=/" >> %tmpfile% terutama tidak berhasil. Aku tidak mendapatkan apa-apa.
Mike Warren

Anda harus menyimpan output terlebih dahulu, memodifikasinya, lalu menulisnya ke file output.
DavidPostill

Jawaban:


2

Apakah ada cara untuk menghasilkan garis miring bukan garis miring

Ya, menggunakan Edit / Ganti Variabel .

Gunakan kode berikut:

@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

Bacaan lebih lanjut


Dalam hal ini, Anda menulisnya ke file teks, disebut output.txt, dan kemudian menghapus file itu sesudahnya, kan?
Mike Warren

@MikeWarren Memang, menggunakannya sebagai file sementara, membacanya dan memodifikasi baris baca ...
DavidPostill
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.