Batch file 将文件从文件列表批量复制到文件夹列表
我有两个文本文件…Batch file 将文件从文件列表批量复制到文件夹列表,batch-file,cmd,Batch File,Cmd,我有两个文本文件…files.txt包含文件名列表和dirs.txt包含文件需要复制到的目录列表。 以下是需要复制文件的方式: File 1 ------------------------> Folder 1 File 2 ------------------------> Folder 2 File 3 ------------------------> Folder 3 如何使用批处理实现此功能?提前感谢…试试这个: @echo off setlocal e
files.txt
包含文件名列表和dirs.txt
包含文件需要复制到的目录列表。以下是需要复制文件的方式:
File 1 ------------------------> Folder 1
File 2 ------------------------> Folder 2
File 3 ------------------------> Folder 3
如何使用批处理实现此功能?提前感谢…试试这个:
@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%a in (files.txt) do (
set /p dir=
echo copy "%%~a" "!dir!"
)<dirs.txt
pause
@echo关闭
延迟扩展
对于(files.txt)中的/f“delims=“%%a”do(
设置/p目录=
回显副本“%%~a”“!dir!”
) 我终于找到了答案…多亏@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]%%"
这绝对不是最好的解决方案…但它确实有效
感谢大家的帮助。请指定否决的原因…我需要提供其他信息吗?我不知道为什么否决了此问题(与其他一些问题类似),但此问题没有问题。每个文件夹中是否只有一个文件?不幸的是,这似乎不起作用。。这就是我得到的:E:\>cmd.bat E:\>setlocal enabledelayedexpansion该命令的语法不正确。E:\>3
请参见上面的编辑-它只会将命令回显到屏幕上。您好@foxidrive…我尝试了您的编辑。但是,它正在将所有文件复制到文件夹1
,这是dirs.txt
中的第一项。
@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]%%"