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, 3692 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
Windows Server
Server 2012 DNS AD DHCP. IP Adress Frage
Frage von maxrutzWindows Server1 Kommentar

Momentan hab ich zum Testen ein Server zuhause mit ESXI und winserver 2012. Ich habe ein Test Netzwerk gemacht ...

Router & Routing

Zugriff auf NAS in anderem IP-Adress Bereich

gelöst Frage von TorstenhofRouter & Routing12 Kommentare

Hallo liebe Forumsmitglieder Ich habe folgendes Problem mit einer Netzwerkkonfiguration: Netzwerk 1: IP Adressen 192.168.0.x Arbeitsplatzrechner und NAS Zugriff ...

LAN, WAN, Wireless

MAC Adress Finder bzw. Scanner (legal)

gelöst Frage von SchwarzerRieseLAN, WAN, Wireless9 Kommentare

Hallo zusammen, ich habe in meinem Heimnetzwerk (mit einer FritzBox als Modem & Router) folgendes "Problem": Irgendein Nachbar besitzt ...

Windows Tools

Cobra Adress Plus und Outlook

gelöst Frage von hartmann0Windows Tools8 Kommentare

Hallo, da ich durch Googlen leider einfach nichts finde, habe ich mich entschlossen, mich einfach mal hier an das ...

Neue Wissensbeiträge
iOS
WatchChat für Whatsapp
Tipp von Criemo vor 21 StundeniOS

Ziemlich coole App für WhatsApp User in Verbindung mit der Apple Watch. Gibts für iOS sowohl als auch für ...

iOS
IOS hat nen Cursor !!!
Tipp von Criemo vor 1 TagiOS5 Kommentare

Nette Funktion im iOS. iPhone-Mauszeiger aktivieren „Nichts ist nerviger, als bei einem Tippfehler zu versuchen, den iOS-Cursor an die ...

Off Topic
Avengers 4: Endgame - Erster Trailer
Information von Frank vor 3 TagenOff Topic2 Kommentare

Ich weiß es ist Off Topic, aber ich freue mich auf diesen Film und vielleicht geht es anderen hier ...

Webbrowser
Microsoft bestätigt Edge mit Chromium-Kern
Information von Frank vor 3 TagenWebbrowser5 Kommentare

Microsoft hat nun in seinem Blog bestätigt, dass die nächste Edge Version kein EdgeHTML mehr für die Darstellung benutzen ...

Heiß diskutierte Inhalte
Exchange Server
Exchange Server 2010: Keine Eingehenden E-MAils
gelöst Frage von gabeBUExchange Server17 Kommentare

Hallo Zusammen Ich habe das kurzen auf dem Exchange 2010 Server das Problem, dass ich keine externen E-Mails mehr ...

Server
Server in zwei verschiedene Netzwerke einbinden
gelöst Frage von BennyFServer13 Kommentare

Hallo zusammen, bei uns im Haus sind im Erdgeschoss die Geschäftsräume und ab dem 1. Stock sind unsere privaten ...

Windows Netzwerk
Kerio. Kann keine Mails empfangen aber senden. Wer ist schuld. Kerio oder Windows domäne?
Frage von frosch2Windows Netzwerk13 Kommentare

Hallo, es existiert ein Problem bei uns mit dem mailen. Alle bestehenden Nutzer können mailen. Raus wie rein. Neuen ...

Netzwerkmanagement
Ticketsystem für eine Kommune gesucht
gelöst Frage von akovisNetzwerkmanagement11 Kommentare

Ich suche aktuell ein Ticketsystem für eine Kleinstadt von 13000 Einwaohnern. Das System soll alle Anfragen aus verschiedenen Kanälen ...