批量,读取文件和复制文件名称

时间:2015-05-04 09:29:30

标签: batch-file

我遇到了一个基本问题:(

我想从批处理文件中读取txt文件,将文件中找到的文件名复制到新目录

例如:
- 我的src文件夹包含Microsoft KB(arround 300个文件),名称为" Windows 6.1-KBxxxxx.msu"
- 我的文件[KB.Txt]如下所示:
KB320000
KB320001
- dst文件夹为空

... 所以我想只将我的KB.txt中的KB从src复制到dst

我的批次看起来像:

set src=%~dp0\src
set dst=%~dp0\dst
set file=%~dp0KB.txt

for /f "delims=" %%i in (%file%) do (
xcopy "%src%\%%i" "%dst%\%%i" /i /z /y /s
)

这不起作用,因为脚本只尝试使用确切的名称进行复制。 我用通配符测试没有成功......我做错了什么?

谢谢!

1 个答案:

答案 0 :(得分:2)

set src=%~dp0\src
set dst=%~dp0\dst
set file=%~dp0KB.txt

for /f "delims=" %%i in (%file%) do (
   copy /y  "%src%\*%%i*" "%dst%\" 
)

copy命令支持通配符,因此使用星号封闭%%i应该可以正常工作。 使用XCOPY文件(该命令是为文件夹设计的)是个坏主意,因为如果你想创建一个目标目录,它会提示。