Variablenanordnung aus einer TXT Datei als aufgelöste Variable übernehmen?
Hallo alle zusammen und schönes Wochenende,
wieder einmal ne etwas komplizierte Geschichte. Ich versuche das zu erklären:
In einer For Schleife werden für viele Teile Variablen angelegt - Check
Also habe ich !Variable1! !Variable2! !Variable3! - Check
Diese Variablen sollen mittels txt Datei nun sotiert werden, sprich anders angeordnet. - FAIL
In meiner txt Datei steht jetzt !Variable2! !Variable1! !Variable3!. Das Batch soll also die vorher aufgelösten Variablen nutzen.
Macht es aber nicht , er nimmt !Variable2! !Variable1! !Variable3! als Textstring, was mir nicht hilft.
Ich muss in der FOR Schleife auch mit DelayedExpansion arbeiten
Ein Beispiel, das Batch soll Dateien umbenennen. Die Art und Weise wie unbenannt wird, soll in einer TXT definiert sein.
Sprich Datei Ferdi Fuchs Der Grosse.iso wird gesplittet in der Schleife zu : Ferdi=%Variable1% Fuchs=%Variable2% Der Grosse=%Variable3%
In meiner TXT Datei steht jetzt : !Variable2! !Variable1! !Variable3!. Die Ausgabe soll jetzt sein: Fuchs Ferdi Der Grosse.iso.
Gebe ich jetzt in der Batch ein:
funktioniert es. Gebe ich aber ein:
geht es nicht obwohl !Variable2! !Variable1! !Variable3! in Zeile 1 in der TXT stehen. Er löst die Variablen nicht auf.
Ich hoffe ich habe das verständlich in Worte gefasst. Falls es weiterhilft, die Anordnung der Variablen wird sich immer in Zeile 1 der txt befinden.
wieder einmal ne etwas komplizierte Geschichte. Ich versuche das zu erklären:
In einer For Schleife werden für viele Teile Variablen angelegt - Check
Also habe ich !Variable1! !Variable2! !Variable3! - Check
Diese Variablen sollen mittels txt Datei nun sotiert werden, sprich anders angeordnet. - FAIL
In meiner txt Datei steht jetzt !Variable2! !Variable1! !Variable3!. Das Batch soll also die vorher aufgelösten Variablen nutzen.
Macht es aber nicht , er nimmt !Variable2! !Variable1! !Variable3! als Textstring, was mir nicht hilft.
Ich muss in der FOR Schleife auch mit DelayedExpansion arbeiten
Ein Beispiel, das Batch soll Dateien umbenennen. Die Art und Weise wie unbenannt wird, soll in einer TXT definiert sein.
Sprich Datei Ferdi Fuchs Der Grosse.iso wird gesplittet in der Schleife zu : Ferdi=%Variable1% Fuchs=%Variable2% Der Grosse=%Variable3%
In meiner TXT Datei steht jetzt : !Variable2! !Variable1! !Variable3!. Die Ausgabe soll jetzt sein: Fuchs Ferdi Der Grosse.iso.
Gebe ich jetzt in der Batch ein:
SET NEWNAME = Variable2! !Variable1! !Variable3!.iso
SET /P NEWNAME =<config.txt
Ich hoffe ich habe das verständlich in Worte gefasst. Falls es weiterhilft, die Anordnung der Variablen wird sich immer in Zeile 1 der txt befinden.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 331805
Url: https://administrator.de/contentid/331805
Ausgedruckt am: 22.11.2024 um 15:11 Uhr
1 Kommentar
Hallo Kriegstreiber.
Auch wenn ich den Sinn der Aktion nicht verstehe, so ist es richtig, dass Variablen die aus einer Datei gelesen wurden, nicht zum Wert expandiert werden. Statt dessen werden sie als Stringliteral behandelt. War einst meine erste Frage hier im Forum vor einigen Jahren. Die Lösung hat sich seitdem nicht geändert.
Hieße für dich:
Text
Code
Grüße
rubberman
Auch wenn ich den Sinn der Aktion nicht verstehe, so ist es richtig, dass Variablen die aus einer Datei gelesen wurden, nicht zum Wert expandiert werden. Statt dessen werden sie als Stringliteral behandelt. War einst meine erste Frage hier im Forum vor einigen Jahren. Die Lösung hat sich seitdem nicht geändert.
Hieße für dich:
Text
%Variable2% %Variable1% %Variable3%
for /f "usebackq delims=" %%i in ("config.txt") do call set "NEWNAME=%%i"
rubberman