Batch - Wert aus Textdatei auslesen

Tiggz

Cadet 1st Year
Registriert
Dez. 2006
Beiträge
11
Hallo

Ich möchte einen Wert, der sich ständig ändert, aus einer Textdatei per Batch auslesen.

Die Textdatei hat folgenden Inhalt:

Code:
---------- SCAN.LOG
<input type="hidden" name="SID" value="[B]1373087356[/B]">

Es ändert sich nur die Zahlenkombination innerhalb der Anführungszeichen. Es soll auch nur die Zahlenkombination ohne Anführungszeichen ausgegeben werden.

Kann mir da jemand behilflich sein?

Gruß
Tiggz
 
Code:
more "datei.txt" | findstr /i "<input type=^"hidden^" name=^"SID^" value=^""
Sollte eigentlich schon ausreichen.
 
Funzt nicht so ganz. Es wird folgende Zeile ausgegeben:

<input type="hidden" name="SID" value="1373087356">

Es soll aber nur die Zahlenkombination ausgegeben werden.
 
Funzt auch sonst nicht wie gewünscht (sucht Worte einzeln, findet alle Zeilen, die ähnlich aussehen), ganz so einfach ist es nicht.
Die passende Zeile liesse sich schon mal mit:
findstr /i /c:"<input type=\"hidden\" name=\"SID\" value=\"" info.txt
finden

Handelt es sich um Hausaufgaben oder wofür wird es benötigt? Powershell erlaubt? Zusätzliche Tools erlaubt?
 
Zuletzt bearbeitet:
@OhNoIKilledMyHD

Ich brauch es für eine Reconnect-Batch für meinen Router. Die Zahlenkombination ist eine Session-ID. Die Zahlenkombination soll in eine leere Textdatei eingefügt werden - aus der wird mit einem Script die SID ausgelesen.
 
@Maike23

1) Danke für den Link. Werde ich mir mal anschauen.

2) Ist immer nur eine Zeile
 
geht auch ohne Tools nur mit Batch Methoden

Code:
FOR /F "tokens=4 delims='=','>'" %i in (scan.log) do @echo %~i
 
Gute Idee, easy.2ci.
So würde eine Zeile aus vielen gefunden und in result.txt gespeichert, dann
aus result.txt eingelesen und nach easy.2cis Methode der Rest drumherum weggefiltert.
Das finale Resultat wird dann nach final.txt geschrieben:
Code:
@echo off

findstr /r /c:"<input..*type..*name=\"SID\".*value=\"..*\"" info.txt > result.txt
set line1=0
set linefinal=0

if %errorlevel%==0 (
	FOR /F "tokens=4 delims='=','>'" %%i in (result.txt) do set line1=%%i
	)
	echo %line1%
	set linefinal=%line1:"=%
	echo "Gefundene Nummer: %linefinal%"
	@echo %linefinal% > final.txt

pause

Optional kann noch löschen von final.txt und result.txt am Anfang eingebaut werden,
wollte hier aber keine del-Kommandos anbieten ;)
 
@easy.2ci und OhNoIKilledMyHD

Ich bedanke mich vielmals :) . Es funktionieren beide einwandfrei.

Gruß
Tiggz
 
Hallo,

kenne mich leider nicht viel mit Batch funktionien aus.
Habe jetzt die Datei genommen und er gibt fast das aus was ich mag.

Nur leider hab ich jetzt noch ein Problem und hoffe auf eure Hilfe:

Es soll der Bereich "100,0,1,1;10,93;24,A;4,31;51,1" gefunden werden und bis zum Ende der Datei in die result.txt geschrieben werden.
Zugleich brauche ich die "Drücken Sie eine ..." anzeige nicht.

Bitte jetzt nicht böse sein, ich kenne mich damit eigentlich 0 aus.

Vielen vielen Dank!

PHP:
    @echo off
     
    findstr /r /c:"100,0,1,1;10,93;24,A;4,31;51,1*" Vas.txt > result.txt
    set line1=0
    set linefinal=0
     
    if %errorlevel%==0 (
    	FOR /F "tokens=4 delims='=','>'" %%i in (result.txt) do set line1=%%i
      
    	)

    pause
 
Zuletzt bearbeitet:
Zurück
Oben