Sort Befehl führt zu einer Endlossschleife mit Fehlermeldung
Hallo,
ich hab hier eine bat mit deren Hilfe ich bestimmte Telefonnummern aus einer Log-Datei der Telefonanlage rausfiltere.
Die Nummern 100 und 111 sind die Nummern die rausgefiltertwerden. Diese Anrufe werden dann in eine Datei geschrieben, welche dann weiterverschickt wird.
Allerdings möchte ich diese Datei vorhin noch sortieren und zwar nach Datum und Uhrzeit. Bisher sind es zwei Blöcke nämlich einmal der mit der Nummer 100 und einmal mit der 111,da stimmt dann die Sortierung nicht.Ich habe es mit dem sort Befehl probiert allerdings, kommt es dabei zu einer Endlosschleife mit der Fehlermeldung: "Maximale Rekursionstiefe für Setlocal erreicht".
Beispiel aus der Logdatei der Telefonanlage:
Mit freundlichen Grüßen
barkingdog
ich hab hier eine bat mit deren Hilfe ich bestimmte Telefonnummern aus einer Log-Datei der Telefonanlage rausfiltere.
Die Nummern 100 und 111 sind die Nummern die rausgefiltertwerden. Diese Anrufe werden dann in eine Datei geschrieben, welche dann weiterverschickt wird.
Allerdings möchte ich diese Datei vorhin noch sortieren und zwar nach Datum und Uhrzeit. Bisher sind es zwei Blöcke nämlich einmal der mit der Nummer 100 und einmal mit der 111,da stimmt dann die Sortierung nicht.Ich habe es mit dem sort Befehl probiert allerdings, kommt es dabei zu einer Endlosschleife mit der Fehlermeldung: "Maximale Rekursionstiefe für Setlocal erreicht".
@echo off & setlocal
set "Anrufe=D:\ANRUFE.TXT"
set "AnrufeTemp=D:\ANRUFETEMP.TXT"
set "CTILOG=D:\CTILOG.TXT"
set "Antwort=D:\antwort.txt"
set "Puffer=D:\bla.txt"
set "variable=n"
:Loop
IF exist %Anrufe% for /f "tokens=1-10 delims=," %%a in ('findstr /c:", 111" "%CTILOG%"^|findstr /c:",ein"') do >>"%Anrufetemp%" echo %%a,%%b,%%c,%%d,%%e,%%f
IF exist %Anrufe% for /f "tokens=1-10 delims=," %%a in ('findstr /c:", 100" "%CTILOG%"^|findstr /c:",ein"') do >>"%Anrufetemp%" echo %%a,%%b,%%c,%%d,%%e,%%f
IF not exist %Anrufe% for /f "tokens=1-10 delims=," %%a in ('findstr /c:", 111" "%CTILOG%"^|findstr /c:",ein"') do >>"%Anrufe%" echo %%a,%%b,%%c,%%d,%%e,%%f
IF not exist %Anrufe% for /f "tokens=1-10 delims=," %%a in ('findstr /c:", 100" "%CTILOG%"^|findstr /c:",ein"') do >>"%Anrufe%" echo %%a,%%b,%%c,%%d,%%e,%%f
sort %Anrufe% /o %Anrufe%
sort %Anrufetemp% /o %Anrufetemp%
goto :vergleich
:vergleich
echo %variable% >%antwort%
comp %AnrufeTemp% %ANRUFE%<%antwort%
if %ERRORLEVEL%==1 goto :Ungleich
if %ERRORLEVEL%==0 del /q %AnrufeTemp% goto :Loop
del /q %Anrufetemp%
sleep 5
goto :Loop
:Ungleich
type nul > %Anrufe%
for /f "tokens=1-10 delims=," %%a in ('findstr /c:", 111" "%CTILOG%"^|findstr /c:",ein"') do >>"%Anrufe%" echo %%a,%%b,%%c,%%d,%%e,%%f
for /f "tokens=1-10 delims=," %%a in ('findstr /c:", 100" "%CTILOG%"^|findstr /c:",ein"') do >>"%Anrufe%" echo %%a,%%b,%%c,%%d,%%e,%%f
<b>sort %Anrufe% /m 1048576 /o %Anrufe%</b>
del /q %Anrufetemp%
goto :Loop
Beispiel aus der Logdatei der Telefonanlage:
01.12.2008,09:46:01, 100, +49 (3333) 33333, ja,ein, 9, 100, 100
01.12.2008,10:00:41, 100, +49 (3333) 33333, ja,aus, 14, 100, 100
01.12.2008,10:05:25, 111, +49 (3333) 33333,nein,ein, 0, 111, 111
01.12.2008,10:20:50, 100, +49 (3333) 33333, ja,ein, 93, 100, 100
Mit freundlichen Grüßen
barkingdog
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 106532
Url: https://administrator.de/contentid/106532
Ausgedruckt am: 26.11.2024 um 18:11 Uhr
1 Kommentar