2016-08-05 35 views
0

我想創建批處理文件以輕鬆連接到某些網絡驅動器。我正在考慮使用某種嵌套循環,但我有點卡住了。所以,我有兩個變量:批處理文件 - 使用for循環連接網絡驅動器

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

現在我想能夠呼應他們是這樣的:(當然,不是呼應的話,我會連接到正確的驅動正道,但不這裏的問題)

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

我不知道如何解決這個問題。起初,我嘗試了類似下面的內容,但那肯定沒有奏效。它只是繞過每個驅動器的每條路徑,而我只希望每個驅動器有一條路徑。

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

所以...有什麼建議嗎?謝謝!

+1

你當然會得到所有與嵌套循環的組合,因爲內部循環遍歷其所有項目,以便對外部循環的每一次迭代進行迭代。但是你是否真的需要定義這樣的驅動器和路徑?你不能使用一些數組式的變量,比如'set「drive [1] = F」'和'path「dpath [1] = LOCATION01 \ name1」'等等。另請參閱此帖:[如何批量循環數組?](http://stackoverflow.com/q/18462169) – aschipfl

+0

您是否試圖通過批次將網絡驅動器映射到特定的驅動器號? – sambul35

+1

我可以問你爲什麼不編碼三個'NET USE'命令嗎? – Squashman

回答

0

試試這個:

@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 
    ) 
) 
) 

代碼擴展了您通過所有驅動器循環的想法,所有的路徑,但使用變量來跟蹤該指數的每個以便它可以正確的路徑分配到當前驅動器正在處理。