kriegstreiber
Goto Top

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 face-sad

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
funktioniert es. Gebe ich aber ein:
SET /P NEWNAME =<config.txt
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.

Content-Key: 331805

Url: https://administrator.de/contentid/331805

Printed on: May 10, 2024 at 07:05 o'clock

Member: rubberman
rubberman Mar 10, 2017 updated at 21:51:04 (UTC)
Goto Top
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
%Variable2% %Variable1% %Variable3%
Code
for /f "usebackq delims=" %%i in ("config.txt") do call set "NEWNAME=%%i"  
Grüße
rubberman