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, 4098 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 ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
LAN, WAN, Wireless
gelöst TP-Link WA501G als Client einrichten - Keine IP Adresse wir bezogen (14)

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

E-Mail
gelöst Falsche SMTP Server IP Adresse (6)

Frage von laster zum Thema E-Mail ...

Batch & Shell
Hostname bzw IP-Adresse in Excel eintragen (12)

Frage von EgonFrenz zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Erkennung und -Abwehr
Spam mit eigener Domain (12)

Frage von NoobOne zum Thema Erkennung und -Abwehr ...