中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-10 12:04
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,255 会员排行
DOS批处理 & 脚本技术(批处理室) » [已结]如何只复制当前目录下的指定类型的文件?
可打印版本  889 / 9
第1楼 8405132 发表于 2008-11-14 11:05
新手上路 发帖 13 积分 11
[已结]如何只复制当前目录下的指定类型的文件?
比如一个A目录下有: .txt; .dll ; .config; .sql ;子文件夹(子文件夹里也可能有前面的类型文件),要求只复制.dll和.config类型的文件,当子文件夹里也有这些类型的文件时,也要进行一起复制? 批处理怎么写?
偶菜,,大哥大姐们帮帮忙!谢谢啦!

[ Last edited by HAT on 2008-11-18 at 14:26 ]
第2楼 radem 发表于 2008-11-14 12:13
高级用户 发帖 383 积分 691
第3楼 tireless 发表于 2008-11-14 14:45
银牌会员 发帖 1,122 积分 2,025
保留文件夹结构:


不保留文件夹结构:


[ Last edited by tireless on 2008-11-14 at 14:59 ]
第4楼 woaibat 发表于 2008-11-14 20:57
新手上路 发帖 4 积分 4
试试看
for /r %%i in (*.doc,*.xls) do copy %%i 目标路径
第5楼 8405132 发表于 2008-11-18 12:53
新手上路 发帖 13 积分 11
Originally posted by tireless at 2008-11-14 14:45:
保留文件夹结构:


不保留文件夹结构: ...

非常感谢您。。。
我这边还有个问题想问下:
首先帮我看下我写的这个批出有什么问题没
if "%i"=="1" xcopy "F:\Work\批处理\source\*.dll" "F:\Work\批处理\aaa" /e /s /y
if "%i"=="1" xcopy "F:\Work\批处理\source\*.config" "F:\Work\批处理\aaa" /e /s /y

我不太清楚"%i"=="1"这个对不对,我是看到网上有人这么写就搬过来了,但是我不理解为什么要这么做。“%i”这个是参数吧,我还是不太明白参数是怎么回事,好像很多字母都可以做,是这样的吗?
第6楼 8405132 发表于 2008-11-18 13:05
新手上路 发帖 13 积分 11
是我搞错了。。原来是数字。。。
但是当传多个参数过来是,批处理如何接受呢
是按1%到9%的顺序一个一个的来吗?
第7楼 HAT 发表于 2008-11-18 13:16
版主 发帖 5,017 积分 9,023
Re 6楼
是的。
如果你能亲自测试一下再提问的话,印象会更加深刻。
第8楼 8405132 发表于 2008-11-18 13:22
新手上路 发帖 13 积分 11
Originally posted by HAT at 2008-11-18 13:16:
是的。
如果你能亲自测试一下再提问的话,印象会更加深刻。

谢谢版主!
是这样子的,我传了3个参数到批处理,就写成下面的形式,是对的吗?
%1为条件,%2为原文件的路径,%3为目标文件的路径
这样写有问题吗?
if "%1"=="a" xcopy "%2" "%3" /e /s /y
第9楼 8405132 发表于 2008-11-18 13:39
新手上路 发帖 13 积分 11
测试OK.。谢谢诶
第10楼 tireless 发表于 2008-11-18 13:42
银牌会员 发帖 1,122 积分 2,025
%0 代表批处理自身的路径
%1~%9 代表传递给批处理的 9 个参数
%* 代表传递给批处理的无数个参数

可以这样测试:

把 n 逐个换成 0~9、*,然后拖入文件到批处理。
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023