2014-02-24 74 views
0

我有兩個文本文件... files.txt包含文件名列表和dirs.txt包含文件需要複製到的目錄列表。
這是怎樣的文件需要拷貝:批量將文件從文件列表複製到文件夾列表

File 1 ------------------------> Folder 1 
File 2 ------------------------> Folder 2 
File 3 ------------------------> Folder 3 

如何實現這個使用批處理?在此先感謝...

+0

請說明downvote的原因...我是否需要提供更多信息? – user2966174

+0

我不知道爲什麼這是downvoted,(這是類似的一些其他問題),但這個問題沒有錯。 – Monacraft

+0

只有一個文件進入每個文件夾? – foxidrive

回答

0

好吧,我設法弄清楚了......謝謝this來自@foxidrive的回答。這裏是代碼:

@echo off 
setlocal enabledelayedexpansion 
set /A i=0 
for /F "usebackq delims==" %%a in (files.txt) do (
set /A i+=1 
call set array1[%%i%%]=%%a 
call set n=%%i%% 
) 
set /A i=0 
for /F "usebackq delims==" %%a in (dirs.txt) do (
set /A i+=1 
call set array2[%%i%%]=%%a 
) 

for /L %%i in (1,1,%n%) do call copy "%%array1[%%i]%%" "%%array2[%%i]%%" 

這絕對不是最好的解決方案......但它的工作原理!
謝謝大家的幫助。

1

試試這個:

@echo off 
setlocal enabledelayedexpansion 
for /f "delims=" %%a in (files.txt) do (
set /p dir= 
echo copy "%%~a" "!dir!" 
)<dirs.txt 
pause 

上述工作 - 莫納可以修改或刪除以下內容:

setlocal enabledelayedexpansion 
3<dirs.txt(
for /f "delims=" %%a in (files.txt) do (
set /p dir=<&3 
copy "%%~a" "!dir!" 
) 
) 

而且應該做你想做的。請注意,如果dirs.txt的行數少於files.txt,則會失敗。

Mona。

+0

不幸的是這似乎並沒有工作.. 這就是我得到: 'E:\> cmd.bat E:\> SETLOCAL enabledelayedexpansion 該命令的語法不正確。 E:\> 3 ' – user2966174

+0

見上文編輯 - 它只是回聲命令屏幕 – foxidrive

+0

嗨@foxidrive ......我想你的編輯但是它是。將所有文件複製到'dirs.txt'中的** 1st **項目'Folder 1'。 – user2966174

相關問題