Top-Themen

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 IP-Adresse an unbestimmter Stelle einer Zeile auslesen

Mitglied: jschneider

jschneider (Level 1) - Jetzt verbinden

11.02.2008, aktualisiert 19:27 Uhr, 3684 Aufrufe, 11 Kommentare

Hallo Gemeinde


ich stehe mal wieder auf dem Schlauch...

ich würde gerne IP-Adressen aus Zeilen auslesen, die aber an unbestimmten Stellen auftauchen können.

Das sähe dann in etwa so aus


01.
irgendwas1 irgendwas2 10.11.12.13 irgendwas3 
02.
irgendwas1 irgendwas2  irgendwas3 10.11.12.14 irgendwas4
schlussendlich brauch ich immer irgendwas 1 und die IP-Adresse zurück.
Irgendwas1 ist ja einfach, aber da die IP mal an dritter , mal an vierter Stelle auftauchen kann . . .

Irgendwas2 und irgendwas3 können nur folgende Zustände haben
-Paused
-error printing (einiger fall für irgendwas2 und irgendwas3)
-idle

kleinen Tipp bitte ?

<edit>
die IP-Adresse fängt IMMER mit einer 10. an
</edit>
Mitglied: miniversum
11.02.2008 um 15:24 Uhr
Versuchs mal so:
@echo off
FOR /F "tokens=1,3,4 delims= " %%a in (Datei.txt) do set irgendwas1=%%a & set M1=%%b & set M2=%%c
if [%M1:~0,3%]==[10.] (set IP=%M1%) else (set IP=%M2%)
echo %irgendwas1%
echo %IP%
Bitte warten ..
Mitglied: jschneider
11.02.2008 um 16:18 Uhr
hmm das sieht prima aus. allerdings funktioniert jetzt so meine Schleife nicht mehr in der ich diverse Dateien aus einem Verzeichnis ermittle und diese Funktion gegen all diese Dateien fahre. So wie im code unten wird nur noch die erste Zeile abgearbeitet...

ist bestimmt was total doofes
01.
@echo off & setlocal 
02.
cls 
03.
rem ************************************************************* 
04.
rem *** 
05.
rem ***  Globale Einstellungen 
06.
rem ***    
07.
set Basedir=\\Servername\PrintScripte\PMC-Merge 
08.
set IPrintExportDir=%Basedir%\Iprint-Exports 
09.
set MergeFile=%BaseDir%\temp1.txt 
10.
if exist %MergeFile% del %MergeFile%  
11.
rem  
12.
rem                                                           *** 
13.
rem ************************************************************* 
14.
 
15.
 
16.
rem *** 
17.
rem *** Liste der Exportdateien ermitteln 
18.
 
19.
if NOT Exist "%IPrintExportDir%" ( 
20.
  echo kein Iprint Export Verzeichnis gefunden 
21.
 goto :eof 
22.
23.
 
24.
for %%i in (%IPrintExportDir%\*.txt) do ( 
25.
  echo %%i >>  %MergeFile% 
26.
  call :ExportFileRead  %%i 
27.
28.
 
29.
goto fertig 
30.
 
31.
:ExportFileRead 
32.
rem *** 
33.
rem *** Aus den ermittelten Dateien die Werte auslesen 
34.
rem  
35.
set "iPrintExportFile=%1" 
36.
rem echo bearbeite datei %iPrintExportFile% 
37.
 
38.
FOR /F "skip=3 tokens=1,3,4 delims= " %%a in (%iPrintExportFile%) do set iPrintName=%%a & set M1=%%b & set M2=%%c 
39.
if [%M1:~0,3%]==[10.] (set IP=%M1%) else (set IP=%M2%) 
40.
echo %IP%;-;-;-;%iPrintName% >> %MergeFile% 
41.
 
42.
 
43.
 
44.
:fertig 
45.
echo fertig 
46.
 
47.
 
48.
 
49.
 
Bitte warten ..
Mitglied: bastla
11.02.2008 um 17:08 Uhr
Hallo jschneider!

Du musst das Unterprogramm ":ExportFileRead" beenden, indem Du eine Zeile
01.
goto :eof
(vor ":fertig") einfügst.

Alternative: Ersetze "goto fertig" einfach durch
01.
echo fertig 
02.
goto :eof
Grüße
bastla
Bitte warten ..
Mitglied: jschneider
11.02.2008 um 17:46 Uhr
das hilft leider nicht


die freundlicherweise von miniversum gepostete funktion an sich gibt mir nur eine Zeile aus
(so wie sie ist getestet anhand einer gefüllten datei )


die Zeile ist zwar richtig, aber eben nur eine Zeile
Bitte warten ..
Mitglied: miniversum
11.02.2008 um 18:05 Uhr
Ups das war ungetestet von mir. So wird nur jede Zeile verarbeitet.
Versuchs mal so:
01.
@echo off & setlocal 
02.
cls 
03.
rem ************************************************************* 
04.
rem *** 
05.
rem ***  Globale Einstellungen 
06.
rem ***    
07.
set Basedir=\\Servername\PrintScripte\PMC-Merge 
08.
set IPrintExportDir=%Basedir%\Iprint-Exports 
09.
set MergeFile=%BaseDir%\temp1.txt 
10.
if exist %MergeFile% del %MergeFile%  
11.
rem  
12.
rem                                                           *** 
13.
rem ************************************************************* 
14.
 
15.
 
16.
rem *** 
17.
rem *** Liste der Exportdateien ermitteln 
18.
 
19.
if NOT Exist "%IPrintExportDir%" ( 
20.
  echo kein Iprint Export Verzeichnis gefunden 
21.
 goto :eof 
22.
23.
 
24.
for %%i in (%IPrintExportDir%\*.txt) do ( 
25.
  echo %%i >>  %MergeFile% 
26.
  rem echo bearbeite datei %%i 
27.
  for /F "skip=3 delims=" %%j in ("%%i") do (   
28.
    call :ExportFileReadLine  "%%j" 
29.
30.
31.
 
32.
goto:fertig 
33.
 
34.
:ExportFileReadLine  
35.
rem *** 
36.
rem *** Aus den ermittelten Dateien die Werte auslesen 
37.
rem  
38.
set "iPrintExportFile=%~1" 
39.
 
40.
 
41.
FOR /F "tokens=1,3,4 delims= " %%a in (%iPrintExportFile%) do set iPrintName=%%a & set M1=%%b & set M2=%%c 
42.
if [%M1:~0,3%]==[10.] (set IP=%M1%) else (set IP=%M2%) 
43.
echo %IP%;-;-;-;%iPrintName% >> %MergeFile% 
44.
goto:eof 
45.
 
46.
 
47.
:fertig 
48.
echo fertig
miniversum
Bitte warten ..
Mitglied: jschneider
11.02.2008 um 18:24 Uhr
entweder es liegt daran, dass ich heute schon um 04:00 aufgetanden bin und ich nur noch Bahnhof verstehe oder dir ist ist da ein Fehler unterlaufen...

du hast jetzt in dem Teil, in dem ich die Dateien aus dem Verzeichnis ermittelt habe eine Funktion hinzugefügt, die ich nicht verstehe und die m.E. auch nichts mit den Zeilen innerhalb dieser Dateien zu tun hat.

Der Weg ist mir klar.. Dateien ermitteln, dann aus jeder ermittelten Datei erste Zeile auslesen und für jede zeile die Funktion durchführen

%%i ist ja der Dateiname aber %%j irgendwie auch
d.h. nicht der Dateiinhalt, sondern der Dateiname wird übergeben

01.
for %%i in (%IPrintExportDir%\*.txt) do ( 
02.
  echo %%i >>  %MergeFile% 
03.
  echo bearbeite datei %%i 
04.
  for /F "skip=3 delims=" %%j in ("%%i") do (   
05.
    echo i ist %%i 
06.
    echo j ist %%j 
07.
    pause 
08.
    call :ExportFileReadLine  "%%j" 
09.
10.
11.
 
Bitte warten ..
Mitglied: jschneider
11.02.2008 um 18:33 Uhr
ah ich hab was gefunden..

anstelle

01.
  for /F "skip=3 delims=" %%j in ("%%i") do (  
bringt mich

01.
  for /f "skip=3 delims=" %%j in (%%i) do (  
etwas weiter .. (ausgabe der ersten Zeile für die gesucht werden soll

aber:

die :ExportFileReadLine arbeitet dann nichtmehr gegen eine Datei, sondern gegen die Zeilen


01.
 FOR /F "tokens=1,3,4 delims= " %%a in (%iPrintExportFile%) do set iPrintName=%%a & set M1=%%b & set M2=%%c 
ich versuche mich mal weiter
Bitte warten ..
Mitglied: jschneider
11.02.2008 um 18:44 Uhr
jetzt gehts

01.
@echo off & setlocal 
02.
cls 
03.
rem ************************************************************* 
04.
rem *** 
05.
rem ***  Globale Einstellungen 
06.
rem ***    
07.
set Basedir=\\vshqprt01\q$\PrintScripte\PMC-Merge 
08.
set IPrintExportDir=%Basedir%\Iprint-Exports 
09.
set MergeFile=%BaseDir%\temp1.txt 
10.
if exist %MergeFile% del %MergeFile%  
11.
rem  
12.
rem                                                           *** 
13.
rem ************************************************************* 
14.
 
15.
 
16.
rem *** 
17.
rem *** Liste der Exportdateien ermitteln 
18.
 
19.
if NOT Exist "%IPrintExportDir%" ( 
20.
  echo kein Iprint Export Verzeichnis gefunden 
21.
 goto :eof 
22.
23.
 
24.
for %%i in (%IPrintExportDir%\*.txt) do ( 
25.
  echo %%i >>  %MergeFile% 
26.
  echo bearbeite datei %%i 
27.
  for /f "skip=3 delims=" %%j in (%%i) do (   
28.
rem  for /F "skip=3 delims=" %%j in ("%%i") do (  
29.
   echo i ist %%i 
30.
    echo j ist %%j 
31.
    echo ----------------------------- 
32.
     
33.
    call :ExportFileReadLine  "%%j" 
34.
35.
36.
 
37.
goto:fertig 
38.
 
39.
:ExportFileReadLine  
40.
rem *** 
41.
rem *** Aus den ermittelten Dateien die Werte auslesen 
42.
rem  
43.
set "iPrintExportLine=%~1" 
44.
echo %iPrintExportLine% 
45.
 
46.
 
47.
FOR /F "tokens=1,3,4 delims= " %%a in ("%iPrintExportLine%") do set iPrintName=%%a & set M1=%%b & set M2=%%c 
48.
if [%M1:~0,3%]==[10.] (set IP=%M1%) else (set IP=%M2%) 
49.
echo %IP%;-;-;-;%iPrintName% >> %MergeFile% 
50.
goto:eof 
51.
 
52.
 
53.
:fertig 
54.
echo fertig 
55.
 
56.
 
Bitte warten ..
Mitglied: bastla
11.02.2008 um 18:48 Uhr
Hallo jschneider!

Sorry - ich hatte oben nur ganz kurz drübergelesen ...

... und gratuliere, dass Du es selbst ausgetüftelt hast.

Sicherer wird es übrigens, wenn Du die entsprechende "for"-Zeile so schreibst:
01.
for /f "usebackq skip=3 delims=" %%j in ("%%i") do (
Dadurch bleibt der Dateiname in "%%i" unter Anführungszeichen - wichtig, falls er einmal Leerzeichen enthalten sollte.

Grüße
bastla
Bitte warten ..
Mitglied: jschneider
11.02.2008 um 19:05 Uhr
... und gratuliere, dass Du es selbst
ausgetüftelt hast.

Mühsamm nährt sich das Eichhörnchen - dank diesem Forum aber immer schneller

Sicherer wird es übrigens, wenn Du die
entsprechende "for"-Zeile so
schreibst:
01.
for /f "usebackq skip=3 
02.
> delims=" %%j in ("%%i") do ( 
03.
> 
Dadurch bleibt der Dateiname in
"%%i" unter Anführungszeichen
- wichtig, falls er einmal Leerzeichen
enthalten sollte.

direkt so umgesetzt

danke an euch beide nochmal !
Bitte warten ..
Mitglied: Biber
11.02.2008 um 19:26 Uhr
Moin jschneider,

jetzt, wo ja schon eine funktionierende Lösung vorliegt, kann ich ja gefahrlos einen kleinen Verschlankungsvorschlag machen.

01.
:: ..... bis zu dieser Zeile  "for %%i in (%IPrintExportDir%\*.txt) do ("  ...wie oben 
02.
for %%i in (%IPrintExportDir%\*.txt) do ( 
03.
  echo %%i >>  %MergeFile% 
04.
  echo bearbeite datei %%i 
05.
   for /f "tokens=1,*" %%x in ('more +3 "%%i" ^|findstr /C:" 10."') do ( 
06.
       for %%a in (%%y) do @if "%%a" LEQ "11." echo %%a;-;-;-;%%x >> %MergeFile% 
07.
 ) ) 
08.
echo fertig
Grüße
Biber
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Batch - Textdatei - Zeilen auslesen und unbestimmte Zeichenfolge suchen

Frage von fragestellerBatch & Shell1 Kommentar

Hallo zusammen, ich bin neu hier und entschuldigt, falls diese Frage schon mal gestellt wurde. Ich suche zwei Funktionen, ...

Batch & Shell

IP Adressen aus Hosts Tabelle auslesen

gelöst Frage von makroll10Batch & Shell2 Kommentare

Hallo, die Werte aus einer Hosts Tabelle möchte ich mit Hilfe eines Batch, wie u.a. auslesen: Beispiel: 192.155.200.1 GSMROUTER ...

Batch & Shell

Textdatei Zeile für Zeile auslesen

Frage von RIPUEDBatch & Shell

Hallo, ich würde gerne mit einem Batch-Skript Zeilen aus einer Textdatei einzeln und nacheinander auslesen und diese dann nach ...

VB for Applications

Nur letztes Zeichen einer IP Adresse Ändern und in andere Zeile schreiben

gelöst Frage von BloodyRulzVB for Applications3 Kommentare

Hallo, ich hoffe es kann mir jemand helfen. Ich bräuchte die Lösung über VBA. Ich habe eine Liste mit ...

Neue Wissensbeiträge
Drucker und Scanner
HP-MF-Drucker per Fax angreifbsr
Information von Lochkartenstanzer vor 21 StundenDrucker und Scanner2 Kommentare

Endlich eine sinnvolle Verwendung für Faxe: Damit kann man offensichtlich den Drucker übernehmen. lks

Router & Routing

Das pfSense Buch ist jetzt für jeden kostenlos zu beziehen

Tipp von magicteddy vor 1 TagRouter & Routing2 Kommentare

Bisher war das Buch nur für zahlende Unterstützer verfügbar, jetzt steht für Jedermann kostenlos zur Verfügung. Siehe auch The ...

Firewall

Möglicherweise neue Sicherheitslücke in Mikrotik-Firmware

Information von LordGurke vor 3 TagenFirewall3 Kommentare

Hallo zusammen, vor ein paar Monaten gab es ja bereits eine Sicherheitslücke in der Firmware von Mikrotik-Routern, über welche ...

Erkennung und -Abwehr
Rechner hacken mit Cortana, auch Remote
Information von Lochkartenstanzer vor 4 TagenErkennung und -Abwehr3 Kommentare

heise berichtet über den Vortrag von der Blackhat Open Sesame: Picking Locks with Cortana. Einige Fehler sind schon gefixt, ...

Heiß diskutierte Inhalte
Windows Netzwerk
Performance bei Terminalserver
Frage von azizalexanderWindows Netzwerk20 Kommentare

Hallo zusammen, Ich wusste nicht in welches Thema meine Frage passt ich Bitte um Vergebung falls ich hier falsch ...

Exchange Server
Exchange 2013 - Unable to Relay nach extern, SuperMailer
Frage von leon123Exchange Server16 Kommentare

Hallo zusammen, ich brauch mal wieder eure Hilfe. Ich beschäftige mich gerade mit dem SuperMailer und erhalte vom Exchange ...

Windows Server
Remote Desktop Services User Profile Disk - DFS
Frage von einzelkindWindows Server15 Kommentare

Hallo Miteinander, ich richte gerade eine neue RDS Farm auf Basis von Windows Server 2016 ein. Von Server 2012 ...

Peripheriegeräte
Steckdose(nleiste) mit Schwellwert für off und mit externem Taster
Frage von ahstaxPeripheriegeräte15 Kommentare

Hallo, ich suche eine Steckdose oder Steckdosenleiste mit externem Taster und Schwellwerterkennung. Zu realisieren ist folgendes: Ein PC soll ...