IP-Adresse an unbestimmter Stelle einer Zeile auslesen
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
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>
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
irgendwas1 irgendwas2 10.11.12.13 irgendwas3
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>
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 80459
Url: https://administrator.de/contentid/80459
Ausgedruckt am: 04.11.2024 um 22:11 Uhr
11 Kommentare
Neuester Kommentar
Ups das war ungetestet von mir. So wird nur jede Zeile verarbeitet.
Versuchs mal so:
miniversum
Versuchs mal so:
@echo off & setlocal
cls
rem *************************************************************
rem ***
rem *** Globale Einstellungen
rem ***
set Basedir=\\Servername\PrintScripte\PMC-Merge
set IPrintExportDir=%Basedir%\Iprint-Exports
set MergeFile=%BaseDir%\temp1.txt
if exist %MergeFile% del %MergeFile%
rem
rem ***
rem *************************************************************
rem ***
rem *** Liste der Exportdateien ermitteln
if NOT Exist "%IPrintExportDir%" (
echo kein Iprint Export Verzeichnis gefunden
goto :eof
)
for %%i in (%IPrintExportDir%\*.txt) do (
echo %%i >> %MergeFile%
rem echo bearbeite datei %%i
for /F "skip=3 delims=" %%j in ("%%i") do (
call :ExportFileReadLine "%%j"
)
)
goto:fertig
:ExportFileReadLine
rem ***
rem *** Aus den ermittelten Dateien die Werte auslesen
rem
set "iPrintExportFile=%~1"
FOR /F "tokens=1,3,4 delims= " %%a in (%iPrintExportFile%) do set iPrintName=%%a & set M1=%%b & set M2=%%c
if [%M1:~0,3%]==[10.] (set IP=%M1%) else (set IP=%M2%)
echo %IP%;-;-;-;%iPrintName% >> %MergeFile%
goto:eof
:fertig
echo fertig
miniversum
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:
Dadurch bleibt der Dateiname in "%%i" unter Anführungszeichen - wichtig, falls er einmal Leerzeichen enthalten sollte.
Grüße
bastla
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:
for /f "usebackq skip=3 delims=" %%j in ("%%i") do (
Grüße
bastla
Moin jschneider,
jetzt, wo ja schon eine funktionierende Lösung vorliegt, kann ich ja gefahrlos einen kleinen Verschlankungsvorschlag machen.
Grüße
Biber
jetzt, wo ja schon eine funktionierende Lösung vorliegt, kann ich ja gefahrlos einen kleinen Verschlankungsvorschlag machen.
:: ..... bis zu dieser Zeile "for %%i in (%IPrintExportDir%\*.txt) do (" ...wie oben
for %%i in (%IPrintExportDir%\*.txt) do (
echo %%i >> %MergeFile%
echo bearbeite datei %%i
for /f "tokens=1,*" %%x in ('more +3 "%%i" ^|findstr /C:" 10."') do (
for %%a in (%%y) do @if "%%a" LEQ "11." echo %%a;-;-;-;%%x >> %MergeFile%
) )
echo fertig
Grüße
Biber