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

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

Printed on: April 19, 2024 at 18:04 o'clock

Mitglied: 132272
Solution 132272 Feb 17, 2017 updated at 08:53:29 (UTC)
Goto Top
call set ist dein Freund
Variablen abfragen, deren Name sich teils aus anderen Variablen ergibt
call set line=!e%%i!
Gruß
Member: abiber
abiber Feb 17, 2017 at 09:50:44 (UTC)
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!