viper-berlin
Goto Top

Mit For mehrere Variablen auslesen ? wie geht das ?.

Habe folgendes Problem….

Ich möchte in einer For schleife Variablenwerte übertragen wie geht das

Set “Counter=3” & REM Anzahl der Variablen 3
Set “A_1=c:\”
Set “A_2=d:\”
Set “A_3=e:\”

for /L %%N IN (1 1 %Counter%) DO (
dir A_%%N
)

letz sollte ein dir für c:\ d:\ und e:\ ausgeführt werden... klappt aber so nicht!.

Hier ist das Problem wie bekomme ich den Wert aus der Variable A_1 bis 3 ausgelesen ??

Danke für Eure Hilfe ;-.)
Der Vipy

Content-ID: 227851

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

Ausgedruckt am: 25.11.2024 um 14:11 Uhr

colinardo
Lösung colinardo 27.01.2014 aktualisiert um 17:48:44 Uhr
Goto Top
Hallo Vipy,
@echo off & setlocal enabledelayedexpansion
set "A_1=c:\"  
set "A_2=d:\"  
set "A_3=e:\"  
for /L %%N IN (1 1 %Counter%) DO @(
  dir !A_%%N!
)
Die Verzögerte Variablenerweiterung in Kombination mit dem Befehl (enabledelayedexpansion) bewirkt das alles was zwischen zwei Ausrufezeichen steht erst zur Ausführungszeit des Scriptes expandiert wird anstatt schon beim Parsen des Scriptes.

Grüße Uwe
Viper-Berlin
Viper-Berlin 27.01.2014 um 17:49:31 Uhr
Goto Top
Besten Dank! klappt super !!!
Vipy
bastla
Lösung bastla 27.01.2014, aktualisiert am 29.01.2014 um 12:09:58 Uhr
Goto Top
Hallo Viper-Berlin!

Wäre es nicht einfacher, anstelle eines "Pseudo"-Arrays zB
for %%N in (c:\ d:\ e:\ "f:\auch mit Leerzeichen") do dir %%N
zu verwenden?

Abgesehen davon könntest Du Dir, wenn es denn schon unbedingt %A_1% bis %A_x% sein sollen, zumindest das Zählen ersparen:
for /f "tokens=1* delims==" %%i in ('set A_') do dir "%%j"
Grüße
bastla
Viper-Berlin
Viper-Berlin 28.01.2014 um 12:58:16 Uhr
Goto Top
Servus bastla,

ich hab 100 von Variablen mit Verzeichnisseinträgen das würde nicht gehen face-wink

Danke der Vipy