我遇到了一个基本问题:(
我想从批处理文件中读取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
)
这不起作用,因为脚本只尝试使用确切的名称进行复制。 我用通配符测试没有成功......我做错了什么?
谢谢!
答案 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
文件(该命令是为文件夹设计的)是个坏主意,因为如果你想创建一个目标目录,它会提示。