Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Wert Exakt ! finden (z.B. eine IP-Adresse)

Frage Entwicklung Batch & Shell

Mitglied: jschneider

jschneider (Level 1) - Jetzt verbinden

14.02.2008, aktualisiert 20:33 Uhr, 4108 Aufrufe, 4 Kommentare

Hallo *hust*

ich mal wieder. Ich hätte da gern mal ein Problem

Ich habe 2 Source-Dateien, deren Formatierung (Trennzeichen etc.) ich mir selbst zusammenbaue.
In beiden Dateien befinden sich neben IP-Adressen noch andere Werte, die ich per suche nach IP-Adresse miteinander mergen mächte. Also nur bestimmte Werte aus beiden Dateien.

Beispiel-Datei 1
01.
10.11.12.13;-;-;das ist eine Lustige Adresse 
02.
10.11.12.14;-;-;das ist komisch
Beispiel-Datei 2
01.
10.11.12.13;-;12233;irgendwas1 
02.
10.11.12.13;-;48433;irgendwas2 
03.
10.11.12.14;-;98734;irgendwas3 
04.
10.11.12.140;-;976;irgendwas4
Wenn jetzt für jede IP aus Beispiel-Datei 1 eine schleife ausgeführt wird, die diese IP in der zweiten Datei sucht und die dazugehörigen Werte ermittelt.....
01.
for /f "tokens=1,2 delims=;" %%i in ('findstr /c:"10." %SourceMergeFile%') do ( 
02.
call :Compare %%i %%j 
03.
)
01.
:compare 
02.
set "sIP=%1" 
03.
set "ippName=%2" 
04.
 
05.
for /f "tokens=1,2,3,4 delims=;" %%a in ('findstr /c:"%sIP%" %SourceCompareFile%') do ( 
06.
   echo  %%a;%ippname%;%%c;%%d >> %CheckFile02%
findet diese Funktion leider auch IP-Adresen in der der die erste UP-Adresse nur enthalten, nicht aber die gleiche ist.

Also die suche nach 10.11.12.13 findet 10.11.12.13 UND 10.11.12.130


kennt ihr irgendeinen Ansatz der mir hier weiterhelfen könnte ?

Wenn ich mal laut nachdenke kann dieser Sonderfall ja nur an der letzten Stelle auftreten. hm oder ?
Könnte ich dann also evtl bei der Quell-IP die Länge der IP ermitteln und dieses als Bedingung für das finden des Wertes in der Datei2 benutzen oder so ?

also 10.11.12.13 hat (mit Punkten) 11 Zeichen
suche nach 10.11.12.13 -> finden von 10.11.12.130 schauen wv Zeichen wenn nicht genau 11 Zeichn dann nicht korrekt .. oder so ??

sollte an einer anderen Stelle eine IP 1 zeichen weniger haben so würde die suche an sich schon fehlschlagen und es zu einem vergleich der


*schwitz*

habt ihr andere Vorschläge oder wenn mein Ansatz ganz gut klingt .. wie ermittle ich die Länge eines Wertes ?

Gruß, Jan
Mitglied: Dani
14.02.2008 um 14:33 Uhr
Hallo Jan,
setze doch einfach mal den Parameter /L bei findstr zusätzlich. Somit sollte er nur eine IP-Adresse matchen.


Grüße
Dani
Bitte warten ..
Mitglied: jschneider
14.02.2008 um 14:42 Uhr
Hallo Jan,
setze doch einfach mal den Parameter /L bei
findstr zusätzlich. Somit sollte er nur
eine IP-Adresse matchen.


Grüße
Dani


ui , danke für die schnelle Rückmeldung. aber bei deinem Ansatz müsste sichergestellt werden, dass 10.11.12.13 VOR 10.11.12.130 kommt.


ich habe aber eine Lösung gefunden.
ich lese einfach IP1 aus datei 1, suche die Zeile(n) in der IP1 vorhanden ist/sind.. suche dann wiederum aus dieser Zeile die IP und vergleiche die beiden erstmal

01.
for /f "tokens=1,2,3,4 delims=;" %%a in ('findstr /c:"%sIP%" %SourceCompareFile%') do ( 
02.
  if %sIP% EQU %%a ( 
03.
   set  /a foundcounter="foundcounter+1" 
04.
   echo  IPCounter = %IPCounter% - - - FoundCounter =  %foundcounter%     
05.
   echo  %%a;%ippname%;%%c;%%d 
06.
   echo  %foundcounter%;%sIP%;%%a;%ippname%;%%c;%%d >> %CheckFile02% 
07.
  ) else ( 
08.
         echo %sIP% ist nicht wirklich %%a 
09.
	 echo -------------------------------------- 
10.
         %beep_bin% 3 -p 
11.
12.
 )
sorry fürs voreilige posten, danke fürs dennoch lesen

manchmal komm ich nach stundenlangem nachdenken erst auf eine Lösung wenn ichs wem anders erzählt oder wie hier eben gepostet habe..

das ist wohl das archimedische Prinzip

, Jan
Bitte warten ..
Mitglied: miniversum
14.02.2008 um 16:39 Uhr
Eine geringe Abwandlung deiner Batch aus dem eingangsposting wäre so:
01.
:compare 
02.
set "sIP=%1" 
03.
set "ippName=%2" 
04.
 
05.
for /f "tokens=1,2,3,4 delims=;" %%a in ('findstr /c:"%sIP%;" %SourceCompareFile%') do ( 
06.
   echo  %%a;%ippname%;%%c;%%d >> %CheckFile02%
So wird dann nach "10.11.12.13;" gesucht und kann auch ncith mit "10.11.12.130" verwechselt werden.

miniversum
Bitte warten ..
Mitglied: jschneider
14.02.2008 um 20:33 Uhr
hmm , die Lösung lag so nah ^^

danke
Bitte warten ..
Ähnliche Inhalte
Entwicklung
gelöst Public IP Adresse auf Weltkarte (3)

Frage von brammer zum Thema Entwicklung ...

LAN, WAN, Wireless
Keine zuweisung einer IP-Adresse über DHCP in verbundung mit WLAN (3)

Frage von mbraeunlein zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
gelöst WAN öffentliche IP Adresse (6)

Frage von kenjineumann zum Thema LAN, WAN, Wireless ...

Neue Wissensbeiträge
Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(6)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(5)

Anleitung von BassFishFox zum Thema Windows 10 ...

Administrator.de Feedback

Tipp: Ungelöste Fragen ohne Antwort in Tickeransicht farblich hinterlegen

Tipp von pattern zum Thema Administrator.de Feedback ...

Heiß diskutierte Inhalte
Windows Server
gelöst Update BackupExec 2015 auf 2016 führt zu SQL-Server Problem (16)

Frage von montylein1981 zum Thema Windows Server ...

Batch & Shell
gelöst Batch um Benutzer aus Sitzung abzumelden (15)

Frage von zeroblue2005 zum Thema Batch & Shell ...

LAN, WAN, Wireless
IP Sec Client legt Netzwerkkarte lahm (12)

Frage von mario87 zum Thema LAN, WAN, Wireless ...