Erste und zweite zeilen von .txt file auslesen
die Zeilen sind Pfäde, sprich, sie müssten wenn möglich am stück eingelesen werden, also auch z.B. c:\ich und du\schrieben ein Batchprog\Config.txt
Hallo zusammen
Das wäre mal mein Code...nur liest der aus meiner Textdatei immer nur die 2te zeile, respektive die erste von unten aus, und bei der nächsten kommt dann beim echo folgendes heraus:
ECHO ist ausgeschaltet (OFF).
Mein Textfile ist momentan noch simpel:
h:\test1
h:\test2
Das Batch soll nun BEIDE in je eine Variable setzen. Sprich Variable %Q% und Variable %Z%
(gleiche reihenfolge wie die Pfäde im .txt, sprich: %Q%=h:\test1 und %Z%=h:\test2)
dies sollte aber auch funktionieren, wenn man zum beispiel einen Pfad wie diesen hat:
c:\Dokumente und Einstellungen\test1
also %Q%=c:\Dokumente und Einstellungen\test1
Hoffe ihr kommt draus was ich brauche =)
Hallo zusammen
For /F "tokens=1-2 delims=.," %%a in (Config.txt) do (
Set Q=%%b
Set Z=%%a
)
Set Q=%%b
Set Z=%%a
)
Das wäre mal mein Code...nur liest der aus meiner Textdatei immer nur die 2te zeile, respektive die erste von unten aus, und bei der nächsten kommt dann beim echo folgendes heraus:
ECHO ist ausgeschaltet (OFF).
Mein Textfile ist momentan noch simpel:
h:\test1
h:\test2
Das Batch soll nun BEIDE in je eine Variable setzen. Sprich Variable %Q% und Variable %Z%
(gleiche reihenfolge wie die Pfäde im .txt, sprich: %Q%=h:\test1 und %Z%=h:\test2)
dies sollte aber auch funktionieren, wenn man zum beispiel einen Pfad wie diesen hat:
c:\Dokumente und Einstellungen\test1
also %Q%=c:\Dokumente und Einstellungen\test1
Hoffe ihr kommt draus was ich brauche =)
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 160750
Url: https://administrator.de/forum/erste-und-zweite-zeilen-von-txt-file-auslesen-160750.html
Ausgedruckt am: 11.04.2025 um 21:04 Uhr
20 Kommentare
Neuester Kommentar
Hallo aivilon!
Etwa so:
Grüße
bastla
P.S.:
Etwa so:
@echo off & setlocal
set "Datei=config.txt"
set /p Q=<"%Datei%"
set "Z="
for /f "usebackq skip=1 delims=" %%i in ("%Datei%") do if not defined Z set "Z=%%i"
echo %Q%
echo %Z%
bastla
P.S.:
die Zeilen sind Pfäde
Sich mit Pfäden an Montägen herumschlägern zu müssen, is natürlich schon hävy ...
moin,
ich nehmedem Bastla mal etwas ab.... alles zurück, was keine Miete zahlt und gehe nicht über Los direkt auf die stille Treppe in die Ecke
ich nehme
Moin aivilon,
...oder so
Grüße und pfäd di
Biber
[Edit @Skyemugen] Montage..... Tippfehler 5myQ% statt %myQ% korrigiert [/Edit]
...oder so
@echo off & setlocal
FOR /F "delims=" %%i in (QZIni.ini) do if defined myQ (Set "myZ=%%i") else set "myQ=%%i"
:: "Set my" listet alle Variablem %my...% auf, hier also hoffentlich %myQ% und %myZ%
Set my
Grüße und pfäd di
Biber
[Edit @Skyemugen] Montage..... Tippfehler 5myQ% statt %myQ% korrigiert [/Edit]
@Biber
Hätte ich auch schon so vorgehabt, aber dann aus ädukativen Gründen die andere Variantä gewählt ...
Grüße
bastla
Hätte ich auch schon so vorgehabt, aber dann aus ädukativen Gründen die andere Variantä gewählt ...
Grüße
bastla
@bastla
.
...ist immer so montäglich hier... und dieses Jahr fällt sogar der Valendienstag auf einen Montag...
Grüße
Biber
Zitat von @bastla:
Hätte ich auch schon so vorgehabt, aber dann aus ädukativen Gründen die andere Variantä gewählt ...
So'n gründelndes Äquadukt hätte ich auch gärne in meinen hängenden Gärten ...Hätte ich auch schon so vorgehabt, aber dann aus ädukativen Gründen die andere Variantä gewählt ...
.
...ist immer so montäglich hier... und dieses Jahr fällt sogar der Valendienstag auf einen Montag...
Grüße
Biber
[OT] @Biber
BTW: Übermorgen hat der Papst auch schon wieder Namenstag ...
Grüße
bastla
[/OT]
und dieses Jahr fällt sogar der Valendienstag auf einen Montag...
Naja, solange es kein Freitag, und dann vielleicht sogar noch ein 13., ist ...BTW: Übermorgen hat der Papst auch schon wieder Namenstag ...
Grüße
bastla
[/OT]

Zitat von @bastla:
@t-mo
Nur, wenn dann vielleicht noch die eine oder andere Zeile in der "config.txt" dazukommen sollte, musst Du das "
@t-mo
Nur, wenn dann vielleicht noch die eine oder andere Zeile in der "config.txt" dazukommen sollte, musst Du das "
ifnot defined Z
" doch wieder hervorkrämen ... @bastla
- willst du mein feuchtes Brötchen quälen - oder kann ich nicht mehr zählen?
- Montags an den Marterpfählen fängt mein Hirn an zu blähen?
Erste und zweite zeilen von .txt file auslesen
Hülfe Ziiiiiiiiviieee bring meine Augentropfen
Wer lesen kann ist klar im Vorteil
Grüße
bastla
Gesprisen sei Bastla der Erleuchter bastla
[OT] @bastla
Hoffentlich denkt seine Frau auch dran... Namenstage sind wichtig bei den Katholiken...
[/OT]
@aivilion
bevor wir ganz vom Thema abkommen... eine "config"-Datei, wie einfach auch immer, sollte aber nicht aus namenslosen Zeilen bestehen,
die in einer bestimmten Reihenfolge auftauchen müssen. Wenn dann noch dazu kommt, dass es minimal zwei Zeilen sein sollen und maximal auch zwei, damit es klappt...
Ich möchte nicht, dass ich irgendwann in irgendeiner Intensivstation lande, in der die Geräte mit ähnlich robusten Config-Dateien programmiert wurden.
Orientiere dich lieber an den "üblichen" +.ini-Dateien, die MINIMALST wenigstens Zeilen mit dem Aufbau haben.
Wenn deine Pseudo-Configdatei "QZ.ini" wenigstens so aussähe:
... dann könntest du die beiden Dei-Variablen einfach so setzen....(Demo am CMD-Prompt mit "@echo Set.." )
Grüße
Biber
P.S. Und sieh es uns nach, dass wir montachs immer etwas schräg drauf sind...
Hoffentlich denkt seine Frau auch dran... Namenstage sind wichtig bei den Katholiken...
[/OT]
@aivilion
bevor wir ganz vom Thema abkommen... eine "config"-Datei, wie einfach auch immer, sollte aber nicht aus namenslosen Zeilen bestehen,
die in einer bestimmten Reihenfolge auftauchen müssen. Wenn dann noch dazu kommt, dass es minimal zwei Zeilen sein sollen und maximal auch zwei, damit es klappt...
Ich möchte nicht, dass ich irgendwann in irgendeiner Intensivstation lande, in der die Geräte mit ähnlich robusten Config-Dateien programmiert wurden.
Orientiere dich lieber an den "üblichen" +.ini-Dateien, die MINIMALST wenigstens Zeilen mit dem Aufbau haben.
VariablennameX=WertY
Wenn deine Pseudo-Configdatei "QZ.ini" wenigstens so aussähe:
MaiQuelle=c:\Dokumente und Einstellungen\test1
MaiZiel=z:\irgendein anderer Pfad
... dann könntest du die beiden Dei-Variablen einfach so setzen....(Demo am CMD-Prompt mit "@echo Set.." )
>for /f "delims=" %i in ('findstr "=" QZIni.ini') do @echo Set "%i"
Set "MaiQuelle=c:\Dokumente und Einstellungen\test1"
Set "MaiZiel=z:\irgendein anderer Pfad"
Grüße
Biber
P.S. Und sieh es uns nach, dass wir montachs immer etwas schräg drauf sind...
Moin aivilon,
Ja nee, nur fast richtig ...
von hinten aufgerollt..
Der Befehl "Set my" listet alle Umgebungsvariablen auf, die mit den Buchstaben "my" beginnen.
-> Also wäre es nicht unschlau, wenn denn dein Schnipsel eine handvoll "eigene" Variablen definieren will7muss/soll, diese zum leichteren Überprüfen und Verwalten einheitlich mit einem gleichen Präfix beginnen zu lassen.
Oder anders formuliert. Wenn ich einen Schnipsel, den ich im Jahr 2003 geschrieben habe heute anpassen müsste,
dann würde ich vielleicht etwas Schwierigkeiten mit dem Wieder-Nachvollziehen haben, wenn da irgendwelchen Variablen %Z% und %Q% verwendet werden.
Bei Variablen namens "MeineQuelle" und "MeinZiel" oder "mybackupQuelle"/"myBackupZiel" würde ich es etwas scheller verstehen.
Insofern... wenn du deine Variablen weiterhin %Q% und %Z% nennst, dann ist natürlich ein Abfragen "nur dieser" Variablen mit einem SET-Befehl ...hmm, nicht unmöglich, aber relativ umständlich.
Grüße
Biber
Zitat von @aivilon:
@ Biber
> # @echo off
> # FOR /F "delims=" %%i in (Config.ini) do if defined myQ (Set "Z=%%i") else set "Q=%%j"
> # :: "Set my" listet alle Variablem %my...% auf, hier also hoffentlich %myQ% und %myZ%
> # Set my
Und der Output wäre?:
> c:\pfad
> d:\pfad
habe ich das richtig interpretiert?
@ Biber
> # @echo off
> # FOR /F "delims=" %%i in (Config.ini) do if defined myQ (Set "Z=%%i") else set "Q=%%j"
> # :: "Set my" listet alle Variablem %my...% auf, hier also hoffentlich %myQ% und %myZ%
> # Set my
Und der Output wäre?:
> c:\pfad
> d:\pfad
habe ich das richtig interpretiert?
Ja nee, nur fast richtig ...
von hinten aufgerollt..
Der Befehl "Set my" listet alle Umgebungsvariablen auf, die mit den Buchstaben "my" beginnen.
-> Also wäre es nicht unschlau, wenn denn dein Schnipsel eine handvoll "eigene" Variablen definieren will7muss/soll, diese zum leichteren Überprüfen und Verwalten einheitlich mit einem gleichen Präfix beginnen zu lassen.
Oder anders formuliert. Wenn ich einen Schnipsel, den ich im Jahr 2003 geschrieben habe heute anpassen müsste,
dann würde ich vielleicht etwas Schwierigkeiten mit dem Wieder-Nachvollziehen haben, wenn da irgendwelchen Variablen %Z% und %Q% verwendet werden.
Bei Variablen namens "MeineQuelle" und "MeinZiel" oder "mybackupQuelle"/"myBackupZiel" würde ich es etwas scheller verstehen.
Insofern... wenn du deine Variablen weiterhin %Q% und %Z% nennst, dann ist natürlich ein Abfragen "nur dieser" Variablen mit einem SET-Befehl ...hmm, nicht unmöglich, aber relativ umständlich.
Grüße
Biber
Hallo aivilon!
Bibers Aussage könnte (noch stärker betont) so aussehen:
eingibst, siehst Du, worum es geht ...
Grüße
bastla
Bibers Aussage könnte (noch stärker betont) so aussehen:
... ein Abfragen "nur dieser" Variablen mit "nur einem" SET-Befehl ...
- eben wegen des fehlenden gemeinsamen Bestandteils am Anfang des Variablennamens - wenn Du mal probeweise in einer CMD-Shell nacheinanderset
set p
set pro
set proc
Das geht nie bei mir...er liest immer eine aus (%%B anstelle von %%A) und bei der anderen gibts dann einfach nen error als string...
... sollte doch eigentlich nach meinem (sehr weit oben stehenden) Ansatz vom Tisch sein (wobei anzumerken ist, dass "for /f
" anhand der angegebenen Werte für "tokens
" und "delims
" nicht die Datei, sondern die jeweilige Zeile zerlegt).Grüße
bastla
Hallo aivilon!
Grüße
bastla
P.S.: Wie "Code"-Formatierung zu erreichen ist, steht ...
Ich brauche aber die Variable Q trotzdem aus der Datei, respektive aus der ersten Zeile der ini datei, und Z aus der zweiten zeile der ini datei
Und was (anderes) befindet sich nach Deinen Tests in den beiden Variablen? Heißt Deine "ini"-Datei inzwischen nicht mehr "config.txt"?Grüße
bastla
P.S.: Wie "Code"-Formatierung zu erreichen ist, steht ...
Zitat von @aivilon:
Ich brauche aber die Variable Q trotzdem aus der Datei, respektive aus der ersten Zeile der ini datei, und Z aus der zweiten zeile
der ini datei
Ich brauche aber die Variable Q trotzdem aus der Datei, respektive aus der ersten Zeile der ini datei, und Z aus der zweiten zeile
der ini datei
Aloha,
*einmisch* und genau das tut es auch (mehrfach getestet und sogar in einem anderen Thread als Lösung hingestellt & funktionstüchtig), der Fehler muss also dann irgendwo bei dir liegen =)
greetz André