Windows batch-Programmierung: direkt - /Indirekt geschachtelte variable Auswertung

Haben wir eine text-Datei listet eine Reihe von Pfaden, und eine batch-Datei, liest die Zeilen aus dieser Datei.

Beispielsweise TargetFolders.txt möglicherweise enthalten die Zeile:

%ProgramFiles%\Acme\FooBar %VersionNumber%

Natürlich, wenn wir Lesen, diese Zeile aus der text-Datei (mit einer FOR-Befehl), wird die variable %%I wird die aktuelle Zeile text, mit dem % - Zeichen eher als das ersetzen der Variablen-Werte. So,

SET VersionNumber=7.0
FOR /F "eol=; delims=" %%I IN (TargetFolders.txt) DO (
    echo Folder: %%I
)

Drucke

Folder: %ProgramFiles%\Acme\FooBar %VersionNumber%

Wie macht man es ersetzen die aktuellen Werte der Variablen, so dass es druckt

Folder: C:\Program Files\Acme\FooBar 7.0

?

  • Wirkt wie ein Duplikat von Wie erweitern Sie eine CMD-shell-variable zweimal (rekursiv)
  • Hmmm es ist nicht eine exakte Kopie, denn Sie haben die %...% im Ort, aber der link könnte hilfreich sein...
  • lrfy: Nicht genau; ich Rede nicht über mehrere Erweiterungen, nur, wie es den Verweis auf die variable in der ersten Linie, anstatt der %name%.
Schreibe einen Kommentar