Inhalt aus Datei als Variable setzen
Hallo Leute,
ich habe vor mir auf einer Textdatei in der verschiedene Dateinamen die sich auch ständig ändern, als
Variable zu setzen um diese dann weiterverarbeiten zu können.
Der Inhalte der Datei sind Dateinamen und variiert an Anzahl und Bezeichnung und stehen zudem alle untereinander.
Wichtig in dem Fall, ich benötige nicht nur eine Zeile, sondern alle Zeilen als eigene Variablen...
Ich dachte ich komme mit:
FOR /F "delims=, tokens=1-10" %%i IN (\\bad-ts-10\d$\citrix_edgeblood\pruefen.txt) DO call :kopieren %%i
weiter. wenn ich allerdings unter :kopieren dann einfach mal ein echo %1 und ein echo %2 reinpacke, erscheint
unter echo%1 der erste dateinamen was auch richtig ist, aber unter echo %2 nichts.
wenn ich mich nicht irre, würde er mit mit den tokens=1-10 die ersten 10 zeilen als variable angefangen bei "i"
einlesen, oder?
elegenter wäre es natürlich wenn ich keine anzahl hier eingeben müsste und er sich die variablenanzahl selbst füllt.
das geht aber definitiv über meinen horizont hinaus...
kann mir einer weiterhelfen?
cu
Casper
ich habe vor mir auf einer Textdatei in der verschiedene Dateinamen die sich auch ständig ändern, als
Variable zu setzen um diese dann weiterverarbeiten zu können.
Der Inhalte der Datei sind Dateinamen und variiert an Anzahl und Bezeichnung und stehen zudem alle untereinander.
Wichtig in dem Fall, ich benötige nicht nur eine Zeile, sondern alle Zeilen als eigene Variablen...
Ich dachte ich komme mit:
FOR /F "delims=, tokens=1-10" %%i IN (\\bad-ts-10\d$\citrix_edgeblood\pruefen.txt) DO call :kopieren %%i
weiter. wenn ich allerdings unter :kopieren dann einfach mal ein echo %1 und ein echo %2 reinpacke, erscheint
unter echo%1 der erste dateinamen was auch richtig ist, aber unter echo %2 nichts.
wenn ich mich nicht irre, würde er mit mit den tokens=1-10 die ersten 10 zeilen als variable angefangen bei "i"
einlesen, oder?
elegenter wäre es natürlich wenn ich keine anzahl hier eingeben müsste und er sich die variablenanzahl selbst füllt.
das geht aber definitiv über meinen horizont hinaus...
kann mir einer weiterhelfen?
cu
Casper
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 86982
Url: https://administrator.de/forum/inhalt-aus-datei-als-variable-setzen-86982.html
Ausgedruckt am: 30.04.2025 um 16:04 Uhr
2 Kommentare
Neuester Kommentar
Moin Casper,
da hast Du nur zu schnell gelesen - mit "tokens 1-10" sind nicht 10 ZEILEN,
sondern 10 Token=Satzteile="Worte" in einer Zeile gemeint.
Für deine Anforderung musst Du selbst die Zeilen nummerieren.
Als CMD-Prompt-Beispiel mal eine Liste aller "r*.txt"-Dateien im/unterhalb des aktuellen Verzeichnisses.
Wenn Du eine Datei statt (wie ich) eine Bildschirmausgabe hast, musst Du statt "befehl ^|findstr /n $" nehmen:
Grüße
Biber
da hast Du nur zu schnell gelesen - mit "tokens 1-10" sind nicht 10 ZEILEN,
sondern 10 Token=Satzteile="Worte" in einer Zeile gemeint.
Für deine Anforderung musst Du selbst die Zeilen nummerieren.
Als CMD-Prompt-Beispiel mal eine Liste aller "r*.txt"-Dateien im/unterhalb des aktuellen Verzeichnisses.
(=14:24:52 D:\temp=)
>for /f "tokens=1,* delims=:" %i in ('dir /b /s r*.txt^|findstr /n $') do @echo set "myvar%i=%j"
set "myvar1=D:\temp\RaffIned.txt"
set "myvar2=D:\temp\Rechnerliste.txt"
set "myvar3=D:\temp\RevInfo.txt"
set "myvar4=D:\temp\rsmoutput.txt"
set "myvar5=D:\temp\Backup1\Admincopy\Anwendungsdaten\Microsoft\Internet Explorer\rsoplog.txt"
set "myvar6=D:\temp\eins\RevInfo.txt"
set "myvar7=D:\temp\eins\rsmoutput.txt"
set "myvar8=D:\temp\olnick\readme.txt"
Wenn Du eine Datei statt (wie ich) eine Bildschirmausgabe hast, musst Du statt "befehl ^|findstr /n $" nehmen:
Findstr /n $ dateiname ----------->(als Inhalt der FOR-Anweisungsklammer).
Grüße
Biber