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-Key: 227851

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

Printed on: April 26, 2024 at 23:04 o'clock

Member: colinardo
Solution colinardo Jan 27, 2014 updated at 16:48:44 (UTC)
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
Member: Viper-Berlin
Viper-Berlin Jan 27, 2014 at 16:49:31 (UTC)
Goto Top
Besten Dank! klappt super !!!
Vipy
Member: bastla
Solution bastla Jan 27, 2014, updated at Jan 29, 2014 at 11:09:58 (UTC)
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
Member: Viper-Berlin
Viper-Berlin Jan 28, 2014 at 11:58:16 (UTC)
Goto Top
Servus bastla,

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

Danke der Vipy