Цель состоит в том, чтобы искать несколько файлов с расширением .rej, поэтому у меня есть файл, который может легко отображать эту информацию.
Так что я пошел в совершенно ином направлении и использую CSV, потому что информация, которая мне нужна, составляет всего 3 строки в каждой строке.
@echo off
setlocal enabledelayedexpansion
For %%I in (*.rej) do (
(for /f "delims==" %%A in (%%I) do set string=%%A & echo !string::=,!) >> %%~nI_Tempout.tmp
(for /f "delims==" %%A in (%%~nI_Tempout.tmp) do set string=%%A & echo !string:[=,!) >> %%~nI_Tempout1.tmp
(for /f "delims=" %%A in (%%~nI_Tempout1.tmp) do Call :Split %%A ) > %%~nI_New.csv)
goto :Eof
:Split
@echo(%1,%9,%11
del *.tmp
File.rej
12.13.14 [-] [20190304][ VBTS 0 ] REJECTED:IM:2q1231231123124:II:123123123123:TM:1278391237912379128379:CAUSES:
12.13.16 [-] [20190304][ VBTS 0 ] REJECTED:IM:2q1231231123124:II:123123123123:TM:1278391237912379128379:CAUSES:
12.13.20 [-] [20190304][ VBTS 0 ] REJECTED:IM:2q1231231123124:II:123123123123:TM:1278391237912379128379:CAUSES:
Однако в конце% 11 печатает% 1 1,
Я могу только предположить, что он обнаруживает% 1 эхо следующего 1
выход
12.13.14,2q1231231123124,12.13.141
12.13.16,2q1231231123124,12.13.161
12.13.20,2q1231231123124,12.13.201
ФИНАЛЬНЫЙ КОД
@echo off
setlocal enabledelayedexpansion
For %%I in (*.rej) do (
(for /f "delims==" %%A in (%%I) do set string=%%A & echo !string::=,!) >> %%~nI_Tempout.tmp
(for /f "delims==" %%A in (%%~nI_Tempout.tmp) do set string=%%A & echo !string:[=,!) >> %%~nI_Tempout1.tmp
(for /f "tokens=1,8,10 delims=," %%A in (%%~nI_Tempout1.tmp) do Call :Split %%A %%B %%C ) > %%~nI_New.csv)
goto :Eof
:Split
@echo(%1,%2,%3
del *.tmp