![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-08 04:59 |
共 48,041 主题排行 / 350,128 发帖 / 今日 3 篇 / 48,253 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [已解决]带文件夹相对路径复制指定的N个文件 |
| 可打印版本 2,254 / 15 |
| 第1楼 flying008 | 发表于 2008-04-11 17:05 |
| 中级用户 发帖 103 积分 245 | |
|
[已解决]带文件夹相对路径复制指定的N个文件 大家好!
偶现在做一个操作系统配置的文件备份批处理,想达到的效果是:把批处理文件放在任何一个文件夹内,并运行它后,则它按批处理文件里的文件路径清单复制到当前文件夹,并且是带原文件路径的。 =============== @echo off @eho c:\IBM\123\456\789.nsf @eho c:\IBM\abc\cd.id @eho c:\Lotus\abc\cd.js :这一行代码是关键,就是COPY上面两个文件到当前文件夹,并且这2个文件是复制到当前文件夹+原路径下的目录内。 ??? exit ================ 示例: 在E盘根目录下的bak文件夹内运行这个批处理后,则会产生如下效果: E:\bak\IBM\123\456\789.nsf E:\bak\IBM\abc\cd.id E:\bak\Lotus\abc\cd.js 在F盘根目录下的load文件夹内运行这个批处理后,则会产生如下效果: F:\load\IBM\123\456\789.nsf F:\load\IBM\abc\cd.id F:\load\Lotus\abc\cd.js 请教各位如何写批处理?bat或vbs都可以,谢谢! [ Last edited by flying008 on 2008-4-15 at 12:35 PM ] |
|
| 第2楼 tvzml | 发表于 2008-04-11 17:18 |
| 初级用户 发帖 67 积分 157 | |
|
这个简单,下面这句就满足你要求了。
xcopy /d/r/y/e/h %cd% E:\bak\ |
|
| 第3楼 flying008 | 发表于 2008-04-11 17:24 |
| 中级用户 发帖 103 积分 245 | |
Originally posted by tvzml at 2008-4-11 17:18: 这句偶还没试效果,不过要是放在F盘的up文件夹运行呢?呵呵……目的是生成 当前文件夹路径+原路径+文件的, COPY上面N个文件到当前文件夹,并且这N个文件是复制到当前文件夹+原路径下的目录内 所以你把E:\bak\作为当前文件夹路径写入批处理中是不合适的,不过还是要谢谢你的帮助! [ Last edited by flying008 on 2008-4-11 at 05:25 PM ] |
|
| 第4楼 flying008 | 发表于 2008-04-12 12:28 |
| 中级用户 发帖 103 积分 245 | |
|
只是感觉这样的功能要用FOR加上XCOPY来实现,但还没有头绪,请大大指教!
|
|
| 第5楼 bat-zw | 发表于 2008-04-12 12:40 |
| 金牌会员 发帖 1,276 积分 3,105 | |
|
自己测试吧: @echo off
set a=c:\IBM\123\456\789.nsf&set b=c:\IBM\abc\cd.id&set c=c:\Lotus\abc\cd.js for /f "delims=" %%i in ('cd') do copy %a% %%i%a:~2%© %b% %%i%b:~2%© %c% %%i%c:~2% [ Last edited by zw19750516 on 2008-4-12 at 12:43 PM ] |
|
| 第6楼 flying008 | 发表于 2008-04-12 15:15 |
| 中级用户 发帖 103 积分 245 | |
|
@echo off
set a=C:\Documents and Settings\Administrator\Application Data\Microsoft\AddIns\polynimials.chm for /f "delims=" %%i in ('cd') do copy %a% %%i%a:~2% 经过测试,只能复制磁盘根目录下文件到当前文件夹下,这样的功能单独用COPY命令就可以做到了。 如果是某文件夹下的文件或多级子文件夹下的文件,无论是否路径有空格,提示系统找不到指定的文件! 且不能生成所需要的多级文件目录. 革命尚未成功,还请大大指点啊!谢谢…… [ Last edited by flying008 on 2008-4-12 at 03:25 PM ] |
|
| 第7楼 abcd | 发表于 2008-04-12 15:37 |
| 银牌会员 发帖 739 积分 1,436 | |
|
[ Last edited by abcd on 2008-4-12 at 03:38 PM ] |
|
| 第8楼 flying008 | 发表于 2008-04-14 11:13 |
| 中级用户 发帖 103 积分 245 | |
|
abcd大大,你好!
运行这个bat时提示内部错误,请问如何修改后才能用这个bat来复制下面3个文件? c:\IBM\123\456\789.nsf c:\IBM\abc\cd.id c:\Lotus\abc\cd.js [ Last edited by flying008 on 2008-4-14 at 11:15 AM ] |
|
| 第9楼 bat-zw | 发表于 2008-04-14 12:48 |
| 金牌会员 发帖 1,276 积分 3,105 | |
|
修改如下: [ Last edited by zw19750516 on 2008-4-14 at 01:18 PM ] |
|
| 第10楼 flying008 | 发表于 2008-04-14 13:35 |
| 中级用户 发帖 103 积分 245 | |
Originally posted by zw19750516 at 2008-4-14 12:48: 此段代码没有指定源文件,如何复制? 把上面改为set a=c:\IBM\456\78j9.txt 则只复制这文件到当前目录,还是没有原路径层级文件夹 [ Last edited by flying008 on 2008-4-14 at 01:43 PM ] |
|
| 第11楼 bat-zw | 发表于 2008-04-14 15:05 |
| 金牌会员 发帖 1,276 积分 3,105 | |
|
xcopy /e命令是指复制文件夹里所有的内容啊(包括空文件夹),你测试了没有啊?
|
|
| 第12楼 moniuming | 发表于 2008-04-14 15:31 |
| 银牌会员 发帖 574 积分 1,335 来自 广西 | |
|
没有比这更笨的方法了,但一定能实现(目录级数如果不一样,请作相应改变):
|
|
| 第13楼 flying008 | 发表于 2008-04-14 17:25 |
| 中级用户 发帖 103 积分 245 | |
Originally posted by zw19750516 at 2008-4-14 15:05: 谢谢大大! 但偶的原文件路径比较深,而且系统文件非常多,像这样复制文件夹就带来了不需要的文件,不是偶想的指定文件的结果。谢谢…… |
|
| 第14楼 bat-zw | 发表于 2008-04-14 20:00 |
| 金牌会员 发帖 1,276 积分 3,105 | |
|
那只有先创建空文件夹了,代码也会多很多。
|
|
| 第15楼 mkd | 发表于 2008-04-15 11:55 |
| 初级用户 发帖 30 积分 109 | |
Originally posted by flying008 at 2008-4-14 11:13 AM: 去除 /e |
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |