2016-08-05 99 views
0

Ich möchte eine Batch-Datei erstellen, um problemlos mit einigen Netzlaufwerken verbinden. Ich dachte daran, eine Art verschachtelte For-Schleife zu verwenden, aber ich stecke ein bisschen fest. So habe ich zwei Variablen:Batch-Datei - Verbinden Sie Netzwerklaufwerke mit for-Schleife

set drives=F,G,H 
set paths=LOCATION01\name1,LOCATION02\name1,LOCATION01\name2 

Jetzt würde ich sie in der Lage sein möge echo wie folgt aus: (na ja, anstatt es von Echo, ich werde den richtigen Weg zum richtigen Antrieb verbinden, aber das bedeutet nicht Frage hier)

F -> LOCATION01\name1 
G -> LOCATION02\name1 
H -> LOCATION01\name2 

Ich bin mir nicht sicher, wie man das löst. Zuerst versuchte ich etwas wie das Folgende, aber das hat nicht funktioniert. Es hat nur jeden Pfad für jedes Laufwerk durchlaufen und ich möchte nur einen Pfad pro Laufwerk.

FOR %%A IN (%drives%) DO FOR %%B IN (%paths%) DO ECHO %%A %%B 

Also ... Irgendwelche Vorschläge? Vielen Dank!

+1

Sie erhalten natürlich alle Kombinationen mit verschachtelten Schleifen, da die innere Schleife alle Elemente durchläuft für * jede * einzelne Iteration des äußeren. Aber müssen Sie die Laufwerke und Pfade wirklich so definieren? Könnten Sie nicht einige array-style Variablen wie 'set 'Laufwerk [1] = F" 'und' Pfad "dpath [1] = LOCATION01 \ name1" 'usw. verwenden? Siehe auch diesen Beitrag: [Wie wird ein Array im Stapel durchgeschleift?] (Http://StackOverflow.com/q/18462169) – aschipfl

+0

Versuchen Sie, Netzwerklaufwerke über Batch mit bestimmten Laufwerksbuchstaben zu verbinden? – sambul35

+1

Darf ich fragen, warum Sie nicht drei NET-USE-Befehle programmieren? – Squashman

Antwort

0

Try this:

@echo off 
setlocal enabledelayedexpansion 
set drives=F,G,H 
set paths=LOCATION01\name1,LOCATION02\name1,LOCATION01\name2 
set drivecounter=0 
for %%d in (%drives%) do (
    set /a "drivecounter+=1" 
    set pathcounter=0 
    for %%p in (%paths%) do (
    set /a "pathcounter+=1" 
    if /i !drivecounter! == !pathcounter! (
     echo %%d assigned to %%p 
    ) 
) 
) 

Der Code auf Ihrer Idee erweitert durch alle Laufwerke von looping und alle Pfaden, sondern nutzt Variablen für jede Spur des Indizes zu halten, damit es den richtigen Pfad zu dem aktuellen Laufwerk zuweisen verarbeitet werden.