Per Batch erste Zeile aus TXT-Datei auslesen, in Variable speichern und dann vergleichen
Hallo Leute,
in einer TXT-Datei steht folgendes:
Mit Leerzeichen nach dem Wert und neuer Zeile. Das interessiert mich jedoch nicht.
Ich möchte diesen Wert gerne einlesen, als Variable speichern und dann mit dem Inhalt einer anderen Variable vergleichen (größer als).
Das ganze soll dann in einer Batch-Datei ausführbar sein.
Ich versuche das jetzt schon ne Weile aber scheitere spätestens am Vergleich.
Wird das vielleicht als String und nicht als Int etc. eingelesen?
Danke für eure Hilfe.
Grüße
in einer TXT-Datei steht folgendes:
38671360
Ich möchte diesen Wert gerne einlesen, als Variable speichern und dann mit dem Inhalt einer anderen Variable vergleichen (größer als).
Das ganze soll dann in einer Batch-Datei ausführbar sein.
Ich versuche das jetzt schon ne Weile aber scheitere spätestens am Vergleich.
Wird das vielleicht als String und nicht als Int etc. eingelesen?
Danke für eure Hilfe.
Grüße
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 166683
Url: https://administrator.de/contentid/166683
Ausgedruckt am: 26.11.2024 um 00:11 Uhr
5 Kommentare
Neuester Kommentar
moin,
Gruß
- wie sehen denn deine bisherigen Versuche aus?
Gruß
Hallo mjay-core,
Batchscript arbeitet fast rein textorientiert, Ausnahme ist nur der Befehl
Da hinter dem Wert noch ein Leerzeichen in der Textdatei steht, nimm am besten sowas wie im folgenden:
Zum Verständnis verweise ich auf mein Tutorial zur FOR-Schleife.
Zum Thema Vergleich:
Gruß
Friemler
Batchscript arbeitet fast rein textorientiert, Ausnahme ist nur der Befehl
SET
mit dem Parameter /A
, damit lassen sich Berechnungen durchführen.Da hinter dem Wert noch ein Leerzeichen in der Textdatei steht, nimm am besten sowas wie im folgenden:
for /f "usebackq" %%v in ("DeineDatei.txt") do set "Variable=%%v"
Zum Thema Vergleich:
IF /?
Gruß
Friemler
Morgen,
also wenn du sagst das du aus einer datei nur die erste zeile auslesen willst,
würde ich das mit
set /p Wert=<Datei
lösen. Das /P muss da hin weil der user dadurch normalerweise zur eingabe aufgefordert wird,
in diesem Fall wird einfach die erste Zeile der Datei genutzt.
(Die Datei muss im selben Ordner wie deine Batch liegen, sonst musst du den gesamten Pfad angeben
was mit %Userprofile% oder anderen Umgebungsvariablen am besten geht.)
Das Leerzeichen nach dem Wert, entfernst du indem du die Variable %Wert%, die du oben erstellt hast,
noch einmal mit
set /a Wert=%Wert%
umwandelst, denn /A wird nur zum Rechnen oder sonstigem Zahlen-Kram benutzt. Sprich das Leerzeichen wird unwichtig und einfach entfernt.
Angenommen du willst den nun eingelesenen Wert mit der Zahl 10 vergleichen, bietet sich if /... an.
Es gibt da 6 besondere Operatoren, habs mal aus der cmd.exe kopiert:
EQU - gleich
NEQ - nicht gleich
LSS - kleiner als
LEQ - kleiner als ODER gleich
GTR - größer als
GEQ - größer als ODER gleich
Dann die ganz normale Form:
IF "%Wert%" LSS "10" @echo %Wert% ist kleiner als 10.
Für LSS kannst du nun jeden anderen Operator einsetzen.
Viel Spaß noch beim Vergleichen, ich hoffe ich konnte dir helfen!
QaMarath
also wenn du sagst das du aus einer datei nur die erste zeile auslesen willst,
würde ich das mit
set /p Wert=<Datei
lösen. Das /P muss da hin weil der user dadurch normalerweise zur eingabe aufgefordert wird,
in diesem Fall wird einfach die erste Zeile der Datei genutzt.
(Die Datei muss im selben Ordner wie deine Batch liegen, sonst musst du den gesamten Pfad angeben
was mit %Userprofile% oder anderen Umgebungsvariablen am besten geht.)
Das Leerzeichen nach dem Wert, entfernst du indem du die Variable %Wert%, die du oben erstellt hast,
noch einmal mit
set /a Wert=%Wert%
umwandelst, denn /A wird nur zum Rechnen oder sonstigem Zahlen-Kram benutzt. Sprich das Leerzeichen wird unwichtig und einfach entfernt.
Angenommen du willst den nun eingelesenen Wert mit der Zahl 10 vergleichen, bietet sich if /... an.
Es gibt da 6 besondere Operatoren, habs mal aus der cmd.exe kopiert:
EQU - gleich
NEQ - nicht gleich
LSS - kleiner als
LEQ - kleiner als ODER gleich
GTR - größer als
GEQ - größer als ODER gleich
Dann die ganz normale Form:
IF "%Wert%" LSS "10" @echo %Wert% ist kleiner als 10.
Für LSS kannst du nun jeden anderen Operator einsetzen.
Viel Spaß noch beim Vergleichen, ich hoffe ich konnte dir helfen!
QaMarath