如何透過批次檔讀取一行的每個字段

如何透過批次檔讀取一行的每個字段

我有一個文件,內容如下

 Testing:TEST1
 --- Import
 --- Build
 Testing:TEST2
 --- Import
 --- Build
 Testing:TEST3
 --- Import
 --- Build
Summary: Tests: 3 Failures:1

我需要得到圖 3 和 1 。

答案1

您使用的是 Windows >= 2000 嗎?如果是這樣,假設資料位於名為「dump.txt」的檔案中,您可以嘗試建立包含下列程式碼的批次檔(即「foo.bat」):

@ECHO OFF
FOR /F "tokens=1,3,5 delims=: " %%A IN (dump.txt) DO (
   IF "%%A"=="Summary" echo %%B %%C
)

批次檔 (foo.bat) 和資料檔 (dump.txt) 必須位於同一資料夾中。

有關“FOR /F”用法的更多信息

答案2

我需要得到數字3和1

使用以下批次命令(test.cmd):

@echo off
setlocal
setlocal EnableDelayedExpansion
for /f "tokens=* skip=2" %%i in ('find "Summary" %1') do  (
  set _line=%%i
  for /f "tokens=3,4" %%j in ("!_line!") do (
    set _tests=%%j
    set _temp=%%k
    set _fails=!_temp:~-1!
    echo Number of tests: !_tests!
    echo Number of fails: !_fails!
    )
  )

用法:

test File

在哪裡:

  • 文件是資料檔( %1)

例子:

F:\test>type test.txt
Testing:TEST1
 --- Import
 --- Build
 Testing:TEST2
 --- Import
 --- Build
 Testing:TEST3
 --- Import
 --- Build
Summary: Tests: 3 Failures:1

F:\test>test test.txt
Number of tests: 3
Number of fails: 1

進一步閱讀

相關內容