Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Sort Befehl führt zu einer Endlossschleife mit Fehlermeldung

Frage Entwicklung Batch & Shell

Mitglied: barkingdog

barkingdog (Level 1) - Jetzt verbinden

20.01.2009, aktualisiert 10:32 Uhr, 2451 Aufrufe, 1 Kommentar

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".



01.
@echo off & setlocal  
02.
set "Anrufe=D:\ANRUFE.TXT"  
03.
set "AnrufeTemp=D:\ANRUFETEMP.TXT" 
04.
set "CTILOG=D:\CTILOG.TXT"  
05.
set "Antwort=D:\antwort.txt" 
06.
set "Puffer=D:\bla.txt" 
07.
set "variable=n" 
08.
 
09.
:Loop  
10.
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 
11.
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 
12.
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 
13.
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 
14.
sort %Anrufe%  /o %Anrufe% 
15.
sort %Anrufetemp% /o %Anrufetemp% 
16.
goto :vergleich 
17.
 
18.
:vergleich 
19.
echo %variable% >%antwort% 
20.
comp  %AnrufeTemp% %ANRUFE%<%antwort% 
21.
if  %ERRORLEVEL%==1 goto :Ungleich 
22.
if  %ERRORLEVEL%==0 del /q %AnrufeTemp% goto :Loop 
23.
del /q %Anrufetemp% 
24.
sleep 5 
25.
goto :Loop 
26.
 
27.
:Ungleich 
28.
type nul > %Anrufe% 
29.
for /f "tokens=1-10 delims=," %%a  in ('findstr /c:", 111" "%CTILOG%"^|findstr /c:",ein"') do >>"%Anrufe%"  echo %%a,%%b,%%c,%%d,%%e,%%f 
30.
for /f "tokens=1-10 delims=," %%a  in ('findstr /c:", 100" "%CTILOG%"^|findstr /c:",ein"') do >>"%Anrufe%"  echo %%a,%%b,%%c,%%d,%%e,%%f 
31.
<b>sort %Anrufe% /m 1048576 /o %Anrufe%</b> 
32.
del /q %Anrufetemp% 
33.
goto :Loop
Beispiel aus der Logdatei der Telefonanlage:

01.
01.12.2008,09:46:01, 100,       +49 (3333) 33333,  ja,ein,     9,                     100,                     100 
02.
01.12.2008,10:00:41, 100,       +49 (3333) 33333,  ja,aus,    14,                     100,                     100 
03.
01.12.2008,10:05:25, 111,       +49 (3333) 33333,nein,ein,     0,                     111,                     111 
04.
01.12.2008,10:20:50, 100,       +49 (3333) 33333,  ja,ein,    93,                     100,                     100
Mit freundlichen Grüßen

barkingdog
Mitglied: barkingdog
20.01.2009 um 14:45 Uhr
Hallo,

ich konnte es in der Zwischenzeit selber lösen.

01.
@echo off & setlocal 
02.
set "Anrufe=D:\ANRUFE.TXT" 
03.
set "AnrufeTemp=D:\ANRUFETEMP.TXT" 
04.
set "CTILOG=D:\CTILOG.TXT" 
05.
set "Antwort=D:\antwort.txt" 
06.
set "variable=n" 
07.
 
08.
:Loop 
09.
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 
10.
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 
11.
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 
12.
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 
13.
goto :vergleich 
14.
 
15.
:vergleich 
16.
echo %variable% >%antwort% 
17.
comp  %AnrufeTemp% %ANRUFE%<%antwort% 
18.
if  %ERRORLEVEL%==1 goto :Ungleich 
19.
if  %ERRORLEVEL%==0 del /q %AnrufeTemp% goto :Loop 
20.
sleep 5 
21.
goto :Loop 
22.
 
23.
:Ungleich 
24.
type nul > %Anrufe% 
25.
for /f "tokens=1-10 delims=," %%a in ('findstr /c:", 111" "%CTILOG%"^|findstr /c:",ein"')do >>"%Anrufe%"  echo %%a,%%b,%%c,%%d,%%e,%%f 
26.
for /f "tokens=1-10 delims=," %%a in ('findstr /c:", 100" "%CTILOG%"^|findstr /c:",ein"')do >>"%Anrufe%"  echo %%a,%%b,%%c,%%d,%%e,%%f 
27.
del /q %AnrufeTemp% 
28.
goto :sort 
29.
 
30.
:Sort 
31.
xcopy anrufe.txt /y d:\projekte 
32.
sort.exe d:\projekte\anrufe.txt /o d:\projekte\anrufe.txt 
33.
goto :Loop
Über ergänzende Kommentare zu der Lösung würde ich mich dennnoch freuen, da ich gerne verstehen würde wo das Problem lag.

Mit freundlichen Grüßen

barkingdog
Bitte warten ..
Ähnliche Inhalte
PHP
gelöst PHP - unique-array() und sort() (14)

Frage von ThomasXYZ zum Thema PHP ...

Microsoft Office
gelöst Access 2013 Runtime führt keine Makros aus (8)

Frage von greatmgm zum Thema Microsoft Office ...

Router & Routing
gelöst MikroTik hAP ac Befehle über SSH (2)

Frage von horstvogel zum Thema Router & Routing ...

Windows Server
gelöst Freigabe führt nicht zur Schreib-Berechtigung (11)

Frage von ElmaCx zum Thema Windows Server ...

Neue Wissensbeiträge
Viren und Trojaner

FinFisher: Internetprovider schieben Spitzelopfern Malware unter

(1)

Information von kaiand1 zum Thema Viren und Trojaner ...

Humor (lol)

Wo ist der Fehler auf dem Bild?

(17)

Information von the-buccaneer zum Thema Humor (lol) ...

Windows Update

Offenbar erneutes MS-Update mit Fehlerschleife (2012 R2)

Information von VGem-e zum Thema Windows Update ...

Heiß diskutierte Inhalte
Lizenzierung
Programm soll in verschiedenen Versionen lizenziert sein (20)

Frage von Yanmai zum Thema Lizenzierung ...

Humor (lol)
Wo ist der Fehler auf dem Bild? (17)

Information von the-buccaneer zum Thema Humor (lol) ...

Microsoft Office
Access Hilfe benötigt (13)

Frage von DieAzubinne zum Thema Microsoft Office ...