findstr mehrmals auf Ausgabe eines make anwenden
Hallo Zusammen
Ich bin schon länger dabei, habe aber bisher noch nicht sehr aktiv mitgemacht.
Nun habe ich eine Frage zum batchen. Ich hoffe es kann jemand weiter helfen. Danke schonmal.
Für einen Microcontroller habe ich eine Batch Datei, die mir den Ablauf des Compilieren, linken usw. abnimmt.
Ich möchte nun nach dem make schauen, ob es irgendwelche Fehler gegeben hat. Die Ausgabe des make sieht in etwa so aus:
Wichtig sind immer die Zeilen mit "...COMPLETE. X WARNING(S), Y ERROR(S)".
Ich hab es hingekriegt, dass ich die Warnings und Errors auslesen kann, jedoch überspringt es die Zeile "ASSEMBLY COMPLETE". Warum weiss ich nicht.
Wenn das ganze für euch zu einfach ist, wäre es schön, wenn man noch den Dateinamen z.B. "kyoMAIN.c" oder "Flash.c" ausgeben könnte, falls ein Fehler auftrat.
Ich bin schon länger dabei, habe aber bisher noch nicht sehr aktiv mitgemacht.
Nun habe ich eine Frage zum batchen. Ich hoffe es kann jemand weiter helfen. Danke schonmal.
Für einen Microcontroller habe ich eine Batch Datei, die mir den Ablauf des Compilieren, linken usw. abnimmt.
Ich möchte nun nach dem make schauen, ob es irgendwelche Fehler gegeben hat. Die Ausgabe des make sieht in etwa so aus:
PolyMake V3.3 for MSDOS
Copyright 1984-1990 Sage Software, Inc. All rights reserved.
Today's date is 27 Jul 2009 9:17:16.
a166 start167.a66 SET (HLARGE) M167
A166 MACRO ASSEMBLER V4.20 - SN: C6D4U-70025E
COPYRIGHT KEIL ELEKTRONIK GmbH 1991 - 2001
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
c166 kyoMAIN.c HLARGE WL(2) OT(6,SPEED)
C166 COMPILER V4.20c - SN: C6D4U-70025E
COPYRIGHT KEIL ELEKTRONIK GmbH 1991 - 2001
C166 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
c166 Flash.c HLARGE WL(2) OT(6,SPEED)
C166 COMPILER V4.20c - SN: C6D4U-70025E
COPYRIGHT KEIL ELEKTRONIK GmbH 1991 - 2001
C166 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
make complete.
Wichtig sind immer die Zeilen mit "...COMPLETE. X WARNING(S), Y ERROR(S)".
Ich hab es hingekriegt, dass ich die Warnings und Errors auslesen kann, jedoch überspringt es die Zeile "ASSEMBLY COMPLETE". Warum weiss ich nicht.
Wenn das ganze für euch zu einfach ist, wäre es schön, wenn man noch den Dateinamen z.B. "kyoMAIN.c" oder "Flash.c" ausgeben könnte, falls ein Fehler auftrat.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 121378
Url: https://administrator.de/contentid/121378
Ausgedruckt am: 25.11.2024 um 03:11 Uhr
10 Kommentare
Neuester Kommentar
Ungetestet!
probier mal
Edit: Pause dazu, damit man was sieht
probier mal
@echo off &setlocal
for /f "delims=. tokens=1,*" %%i in ('findstr /c:"COMPLETE." "onlymake.log"') do (
for /f "tokens=1-3" %%k in ("%%j") do set /a Warn=%%k &set /a Err=%%m &call :Proc
)
pause
goto :eof
:Proc
:: display current file!?
echo Warnings: %Warn%
echo Errors : %Err%
Versuch mal das:
::edit: Ausgabe bearbeitet
@echo off & setlocal
for /f "tokens=1,3,5 delims=:." %%l in ('findstr /n /c:"COMPLETE." "onlymake.log"') do call :doit %%l %%m %%n
goto:eof
:doit
set /a Zeile=%1-6
set "filename="
for /f "skip=%Zeile% tokens=2 delims= " %%i in ('findstr /n /r .* "onlymake.log"') do if not defined filename set filename=%%i
echo %filename%:
echo Warnings: %2
echo Errors : %3
echo.
goto:eof
::edit: Ausgabe bearbeitet