Mit Batchdatei Inhalt einer Textdatei in Variablen speichern?
HeyHo,
Ich habe ein Textdokument wovon ich den Inhalt in verschiedenen Variablen speichern möchte um diese dann später im Programm weiter zu verwenden, gibt es eine Möglichkeit dieses zu machen?
Mein Textdokument:
Zitrone
Baum
Apfel
Banane Kiwi
Vielen Dank für eure Hilfe!
P.S. Ich benutze Windows!
Das ist schon richtig so mit den ganzen Leerzeichen und den Absätzen im Textdokument.
2 Antworten
P.S. Ich benutze Windows!
Naklar Batch ist immer Windows🙃
@echo off
setlocal enableDelayedExpansion
set "count=1"
for /f "usebackq tokens=*" %%l in ("Mein Textdokument.txt") do (
rem eingelesene Zeilen in pseudoArray speichern...
set "array[!count!]=%%a
rem Arrayindex um 1 erhöhen...
set /a "count+=1"
)
rem 1.Zeile dierekt aus der 1.Arrayzelle anzeigen...
echo Zeile 1 = %array[1]%
rem Zeilen 2 bis 4 aus Arrayzellen anzeigen
for /l %%a in (2,1,4) do (
echo.!array[%%a]!
)
pause
setlocal enabledDelayedExpansion macht das erweiterte Variablenhandling möglich.
In der ersten for-Schleife wird die Datei Zeilenweise eingelesen. (Leerzeilen werden ignoriert!)
Das mischen von "!" und "%" in Variablennamen unter Batch ist eine kleine Wissenschaft für sich. Darauf möchte ich jetzt nicht explizit eingehen. Bei Fragen dazu stell eine neue GuteFrage😇.
Da ich die Batch aus der Hüfte auf dem Handy geschrieben habe, kann ich nicht testen. (Auch Profis haben ab und zu Denkfehler)
Wenn mein Alzheimer mich nicht allzusehr peinigt sollte aber alles richtig sein...
Sollte was nicht klappen Sag's einfach.
https://ss64.com/nt/for_f.html
War doch alles gut, vielen Dank, da hab ich doch tatsächlich den Fehler in Zeile 7 vergessen umzuändern...
Freut mich, das es jetzt funktioniert.
Natürlich darfst Du den Code kopieren, verändern oder anderweitig verwerten. Ich gehöre zu den Leuten die alles, was sie im Netz von sich gegeben haben , als eine Aussaat von Wissen betrachten. Was ich für mich behalte wandert in ein paar Jahren unwiederbringlich unter die Erde und ist nur noch Futter für die Würmer 🥵
Was Du jedoch tun kannst, ist meine Mühe durch das klicken diverser Knöpfe und Daumen zu honorieren..., das vergessen die Fragesteller welche die meiste "Arbeit" erfordern zu gern😬
Ich verstehe den Code leider überhaupt nicht da ich mit der Batch-Programmierung überhaupt nix am Hut habe, kann ich den Code denn 1x1 kopieren? Natürlich bessere ich den Fehler in Zeile 7 noch aus... :)
Was ist denn dein letztendliches Ziel? Einfach nur einen Haufen Variablen definiert zu haben ist in erster Linie ja sinnlos, was hast du danach mit ihnen vor?
Ich habe schon ein Skript wo ich mit der bat eine Verknüpfung einer exe erstelle, dort habe ich den Pfad mit %userprofile% unteranderem erstellt. Nun muss ich diese Verknüpfung einer exe Datei für jeden Benitzer auf dem Computer machen...
Und ich muss auch für jeden Benutzer einen Ordner in einem bestimmten Verzeichnis sowie eine txt Datei in diesem Ordner erstellen.
Und wo kommen dann die Variablen ins Spiel, die du aus der Textdatei einlesen willst?
Diese benötige ich für den Bau des Verzeichnisses
Wenn du mir nur einzelne Satzbrocken hinwirfst, kann ich dir leider nicht weiterhelfen. Du benötigst doch kein Obst zum "Bau des Verzeichnisses"...
Oh, ne das war nur ein Beispiel, normalerweise kommen da die Usernamen hin, aber meine Frrage wurde oben schon beantwortet
Gibt es eine Möglichkeit, dass ich mir die Variablen anzeigen lassen kann) Soweit ich weiß funktioniert das mit echo Variable.
Außerdem habe ich dein Code mal ausprobiert und da kommt bei mir nur irgendein Salat heraus...