abiber
Goto Top

Mit zusammengesetzter Variable auf andere Variable zugreifen

Hallo zusammen,

ich möchte in einer Batch Datei über Robocopy auf mehrere Rechner Dateien verteilen. Dazu möchte ich am Anfang alle Pfadangaben der Rechner in je einer Variable speichern und dann über eine For-Schleife das ganze kopieren lassen.
@echo off
setlocal EnableDelayedExpansion

set e1=\\srv01\public\batchtest\ziel1
set e2=\\srv02\public\batchtest\ziel2

net use z: \delete

for /L %%i in (1,1,2) do (
	set line=e%%i
	net use z: !line! /persistent:no  
...

Mein Problem ist jetzt, dass ich nicht weiß, wie ich beim letzten net use Befehle die Variable angeben muss damit er nicht nur den Inhalt von !line! nimmt sondern den Inhalt von %e1%. Gibt es hier eine Möglichkeit?
Alternativ könnte ich natürlich immer per if Abfrage vergleichen also so:
if !line!==e1 set path=%e1% 
Da ich aber ca. 20 Pfadangaben habe, macht es die Batch-Datei nur unnötig lang...

Habt ihr vielleicht noch eine Idee?

Danke schon mal für eure Hilfe,

Andreas

Content-ID: 329744

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

Ausgedruckt am: 13.11.2024 um 01:11 Uhr

132272
Lösung 132272 17.02.2017 aktualisiert um 09:53:29 Uhr
Goto Top
call set ist dein Freund
Variablen abfragen, deren Name sich teils aus anderen Variablen ergibt
call set line=!e%%i!
Gruß
abiber
abiber 17.02.2017 um 10:50:44 Uhr
Goto Top
Hallo,

zwar war deine Angabe nicht ganz richtig, da ich ja in einer For-Schleife bin und deshalb mit ! arbeiten muss, aber so habe ich es jetzt mal getestet:
@echo off
setlocal enabledelayedexpansion 

set e1=\\srv01\public\batchtest\ziel1 
set e2=\\srv02\public\batchtest\ziel2 
set e3=\\srv03\public\batchtest\ziel3

for /L %%i in (1,1,3) do (
	echo Durchlauf %%i
	set line=e%%i
	echo !line!
	call set path=!e%%i!
	echo !path!

echo **************
)
pause

Ausgabe ist dann folgendes:
Durchlauf 1 
e1 
\\srv01\public\batchtest\ziel1  
************** 
Durchlauf 2 
e2 
\\srv02\public\batchtest\ziel2  
************** 
Durchlauf 3 
e3 
\\srv03\public\batchtest\ziel3 
************** 

Danke für die Hilfe!