0

以下のコードがあります。面倒かもしれませんが、一度に 1 つのファイル (この場合は test1.OUT) に対して機能します。私がやろうとしているのは、test1.OUT の代わりにある種のワイルドカード名を試して使用し、フォルダー内のすべての .OUT ファイルに対してバッチ ファイルを反復処理することです。

私が遭遇するもう 1 つの問題は、output3.txt ファイルが毎回上書きされることです。以前の情報を上書きするのではなく、バッチ ファイルを実行するたびに情報をエクスポートして output3.txt に追加することは可能ですか?

@echo off
setlocal EnableDelayedExpansion

rem Assemble the list of line numbers
set numbers=
for /F "delims=:" %%a in ('findstr /I /N /C:"Number of Error Taps:  0" test1.OUT') do (
    set /A before=%%a-6, after=%%a+1
    set "numbers=!numbers!!before!: !after!: "
)
rem Search for the lines
(for /F "tokens=1* delims=:" %%a in ('findstr /N "^" test1.OUT ^| findstr /B      "%numbers%"') do echo %%b) > output.txt

set wildcard=%%G
set numbers=
for /F "delims=:" %%a in ('findstr /I /N /C:"Site Number:" test1.OUT') do (
    set /A before=%%a-1, after=%%a+1
    set "numbers=!numbers!!before!: !after!: "
)
rem Search for the lines
(for /F "tokens=1* delims=:" %%a in ('findstr /N "^" test1.OUT ^| findstr /B         "%numbers%"') do echo %%b) > output1.txt


set numbers=
for /F "delims=:" %%a in ('findstr /I /N /C:"Number of Error Taps:  0" test1.OUT') do (
    set /A before=%%a-50, after=%%a+1
    set "numbers=!numbers!!before!: !after!: "
)
rem Search for the lines
(for /F "tokens=1* delims=:" %%a in ('findstr /N "^" test1.OUT ^| findstr /B   "%numbers%"') do echo %%b) > output2.txt

copy output1.txt+output.txt+output2.txt output3.txt
@pause
4

1 に答える 1

1

コード例:

@echo off &setlocal EnableDelayedExpansion

for %%a in (*.out) do call:process "%%~a"
goto:eof

:process
set numbers=
for /F "delims=:" %%a in ('findstr /I /N /C:"Number of Error Taps:  0" "%~1"') do (
    set /A before=%%a-6, after=%%a+1
    set "numbers=!numbers!!before!: !after!: "
)

(for /F "tokens=1* delims=:" %%a in ('findstr /N "^"  "%~1" ^| findstr /B "%numbers%"') do echo %%b)> "%~n1.txt"

set numbers=
for /F "delims=:" %%a in ('findstr /I /N /C:"Site Number:"  "%~1"') do (
    set /A before=%%a-1, after=%%a+1
    set "numbers=!numbers!!before!: !after!: "
)

(for /F "tokens=1* delims=:" %%a in ('findstr /N "^"  "%~1" ^| findstr /B "%numbers%"') do echo %%b)> "%~n11.txt"

set numbers=
for /F "delims=:" %%a in ('findstr /I /N /C:"Number of Error Taps:  0" "%~1"') do (
    set /A before=%%a-50, after=%%a+1
    set "numbers=!numbers!!before!: !after!: "
)

(for /F "tokens=1* delims=:" %%a in ('findstr /N "^"  "%~1" ^| findstr /B "%numbers%"') do echo %%b)> "%~n12.txt"

copy  "%~n11.txt" + "%~n1.txt" +  "%~n12.txt" = "%~n13.txt"

exit /b
于 2013-11-02T22:17:51.767 に答える