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, 3690 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
Sicherheit
Adminrechte dank Bug in Intel HD Graphics Treiber
Information von DerWoWusste vor 2 StundenSicherheit

->Intel HD graphics 4200 und neuer (4400, 4600 520,530,620, 630,) sind auf jeden Fall betroffen und bereinigte Treiber sind ...

Router & Routing

Endlich: Reines Kabel-TV Modem in D erhältlich !

Information von aqui vor 2 TagenRouter & Routing9 Kommentare

Mit dem Technicolor TC4400-EU Modem sind nun auch Breitband Router ohne integriertes Modem oder Firewalls wie z.B. die pfSense ...

Netzwerkgrundlagen
The Illustrated TLS Connection
Information von Lochkartenstanzer vor 3 TagenNetzwerkgrundlagen1 Kommentar

Moin, Unter findet man eine gelungene Erläuterung von TLS. Fördert sehr das verständnis darüber, was da passiert. lks

Windows 10

Zuverlässiger Remove-AppxProvisionedPackage Ausführen in W10-1803

Tipp von NetzwerkDude vor 5 TagenWindows 104 Kommentare

Moin, Remove-AppxProvisionedPackage hat in 1709 recht zuverlässig funktioniert, in 1803 ist es leider so das es gerne mail failed ...

Heiß diskutierte Inhalte
Netzwerkprotokolle
OpenVPN auf dem Client Verständnisfrage
gelöst Frage von bk900042Netzwerkprotokolle23 Kommentare

Hallo Community, möchte OpenVPN benutzen, um mich über VPN per RDP zu einem Server zu verbinden und auch GIT ...

Windows Server
AD User wird immer wieder gesperrt
Frage von YellowcakeWindows Server18 Kommentare

Hey ich habe einen User (ein GL User - Natürlich was denn sonst) der immer wieder gesperrt wird. Ich ...

Netzwerkmanagement
Netzwerklaufwerk verbinden nicht möglich
gelöst Frage von SteiniMNetzwerkmanagement13 Kommentare

Hallo Leute, ich bin neu hier und brauche eure Hilfe. Danke schon mal im Voraus. Ich habe folgendes Problem: ...

Switche und Hubs
OpenSource oder Freeware zur Verwaltung von Switchen
gelöst Frage von JonskezSwitche und Hubs12 Kommentare

Hallo, gibt eine kostenlose Verwaltungssoftware für Switche (überwiegend HP/Aruba)? Es sollte möglich sein, aus der Ferne z.B. die Firmware ...