
set listSource=Source_1 Source_2 Source_3
set listDestination=c:\Destination_1 c:\Destination_2 c:\Destination_3
:: Looking for one line like the example below
for /D /R %%A in (%listSource%) AND %%B in (%listDestination%) do ( robocopy %%A %%B)
::Instead of what I have currently...
for /D /R %%A in (Source_1) do robocopy %%A c:\Destination_1
for /D /R %%A in (Source_2) do robocopy %%A c:\Destination_2
for /D /R %%A in (Source_3) do robocopy %%A c:\Destination_3
所以我想更換{來源目錄}和{目的地目錄}參數在機器人複製命令與變數此參考對應清單所以 Robocopy 將使用每個列表填充變量內容在每次通過時(同時作為一個兩件套變數)。很簡單,我試圖消除不必要的重複,使用一行來代替多行來完成相同的任務。
_______列表A_________名單B_______
- c:\源1 >>> c:\Destination1
- c:\來源2 >>> c:\Destination2
- c:\Source3 >>> c:\Destination3
答案1
我覺得 powershell 會工作得更好,但我認為這就是你想要的(我留下了迴聲,這樣你就可以看到它的作用),但你需要編輯以“echo robocopy”開頭的行
X.BAT如下
@echo off
set listSource=Source_1~c:\Destination_1 Source_2~c:\Destination_2 Source_3~c:\Destination_3
for %%A in (%listSource%) do (
echo %%A
for /f "tokens=1,2 delims=~" %%C in ("%%A") do (
echo robocopy %%C %%D
)
)
給予
C:\Users\ross>x
Source_1~c:\Destination_1
robocopy Source_1 c:\Destination_1
Source_2~c:\Destination_2
robocopy Source_2 c:\Destination_2
Source_3~c:\Destination_3
robocopy Source_3 c:\Destination_3