Mit Batchdatei Inhalt einer Textdatei in Variablen speichern?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet
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

https://ss64.com/nt/set.html

https://ss64.com/nt/delayedexpansion.html

https://ss64.com/nt/setlocal.html

Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren

Erzesel  17.03.2019, 18:56

PS:

Fehler entdeckt: Zeile7

Richtig:

set "array[!count!]=%%l

Sorry 🥵

0
Erzesel  17.03.2019, 19:07
@Erzesel

Oh man, bin ich heute zerstreut...

set "array[!count!]=%%l"

Anführungszeichen " immer abschließen! " .

Demenzia schließt mich in ihre Arme. 🤭🥵

1
Jamiiiiiii 
Fragesteller
 17.03.2019, 21:45

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... :)

0
Jamiiiiiii 
Fragesteller
 17.03.2019, 21:51

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...

Zeile 1 = %a
%a
%a
%a
Drücken Sie eine beliebige Taste . . .
0
Jamiiiiiii 
Fragesteller
 20.03.2019, 14:10
@Jamiiiiiii

War doch alles gut, vielen Dank, da hab ich doch tatsächlich den Fehler in Zeile 7 vergessen umzuändern...

0
Erzesel  20.03.2019, 17:08
@Jamiiiiiii

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😬

2

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?


Jamiiiiiii 
Fragesteller
 23.03.2019, 16:54

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...

0
Jamiiiiiii 
Fragesteller
 23.03.2019, 16:55
@Jamiiiiiii

Und ich muss auch für jeden Benutzer einen Ordner in einem bestimmten Verzeichnis sowie eine txt Datei in diesem Ordner erstellen.

0
timlg07  23.03.2019, 20:09
@Jamiiiiiii

Und wo kommen dann die Variablen ins Spiel, die du aus der Textdatei einlesen willst?

0
Jamiiiiiii 
Fragesteller
 23.03.2019, 20:48
@timlg07

Diese benötige ich für den Bau des Verzeichnisses

0
timlg07  25.03.2019, 18:13
@Jamiiiiiii

Wenn du mir nur einzelne Satzbrocken hinwirfst, kann ich dir leider nicht weiterhelfen. Du benötigst doch kein Obst zum "Bau des Verzeichnisses"...

0
Jamiiiiiii 
Fragesteller
 26.03.2019, 17:52
@timlg07

Oh, ne das war nur ein Beispiel, normalerweise kommen da die Usernamen hin, aber meine Frrage wurde oben schon beantwortet

0