Board logo

标题: [文件操作] [已解决]批处理怎样根据文件完整路径复制文件? [打印本页]

作者: 1e3e    时间: 2011-7-20 15:05     标题: [已解决]批处理怎样根据文件完整路径复制文件?

类似于http://www.bathome.net/viewthrea ... hlight=%B8%B4%D6%C6
但有些不同,这里要复制的文件,有隐藏和只读、系统文件,并且有重名文件,
我的办法是先用attrib c:\*.* -a -s -r -h 将c盘下所有文件改去“隐藏和只读、系统”属性,
下面有文本1.txt(记录的是要复制文件完整路径),内容见附件1.rar,现在,我写了个批处理如2.bat.rar,
我试了几次,发现有些文件复制不到
另外我批处理中用的是copy,如果用xxcopy,该如何写?
谢谢!
作者: 1e3e    时间: 2011-7-20 18:20

本帖最后由 1e3e 于 2011-7-20 22:11 编辑
楼主的第一个附件中的1.txt怎么是空的?
还是用attrib /s吧,xcopy虽然兼容特殊属性的文件,但是效率实在太低了,不适合在目标路径不一致时使用
else 发表于 2011-7-20 15:26

感谢,是我的失误,已重新换上1.txt,另增加了用xcopy写的批处理,不知对否,请重新帮忙看下
作者: Batcher    时间: 2011-7-20 21:18

3# 1e3e


不知对否?你没有自己测试一下吗?
作者: 1e3e    时间: 2011-7-21 23:15

3# 1e3e


不知对否?你没有自己测试一下吗?
Batcher 发表于 2011-7-20 21:18

试了一下,先用attrib命令在dos(深度论坛dos)下复制不完全,丢失太约一半文件,奇怪的是
在pe下却成功复制了所有文件,不过用attrib命令简直是个折磨,耗费时间太长了。
xxcopy命令实验一下,4151个对象只复制出了4149个对象(对象经检测是存在的),经检测是这两句语句没有复制成功
echo f|        xcopy/h/y "C:\WINDOWS\system32\diskecho f|        xcopy/h/y.dll" 1040
echo f|        xcopy/h/y "C:\WINDOWS\system32\xecho f|        xcopy/h/y.exe" 1519
是因为替换时没注意,直接用echo f|        xcopy/h/y 替换copy:copy "C:\WINDOWS\system32\diskcopy.dll" 1040
copy "C:\WINDOWS\system32\xcopy.exe" 1519
所以结论xxcopy命令实际上也是成功的。

另有疑问:一是发现如果使用notepad发现有些本应在一行的文字
分成了两行,而用cnbook没这个问题。
如果分成两行,会影响复制的效果么?
作者: Batcher    时间: 2011-7-22 00:03

5# 1e3e


打开记事本,在菜单栏里面选择“格式”,看看是不是设置了自动换行?
作者: 1e3e    时间: 2011-7-22 19:12

本帖最后由 1e3e 于 2011-7-22 19:14 编辑
5# 1e3e


打开记事本,在菜单栏里面选择“格式”,看看是不是设置了自动换行?
Batcher 发表于 2011-7-22 00:03

确实是的,非常感谢,不过还是有疑问,如果像图片那样换行成两行,应该会导致这一行执行出错,即echo f|        xcopy/h/y "C:\WINDOWS\assembly\GAC_MSIL\System.DirectoryServices.AccountManagement\3.5.0.0__b77a5c561934e089\System.DirectoryServices.AccountManagement.dll" 3592

实际上执行的是echo f|        xcopy/h/y "C:\WINDOWS\assembly\GAC_MSIL\System.DirectoryServices.AccountManagement\3.5,
但实际执行的结果却是成功复制3592这个文件!
作者: Batcher    时间: 2011-7-22 20:11

7# 1e3e


那只是在记事本里面的显示而已,只要没有被回车换行分隔开,执行时是没有问题的。
作者: 1e3e    时间: 2011-7-23 02:48

7# 1e3e


那只是在记事本里面的显示而已,只要没有被回车换行分隔开,执行时是没有问题的。
Batcher 发表于 2011-7-22 20:11

谢谢,感谢解答呀
作者: dennis1314    时间: 2011-7-28 12:19

这个适合移动的时候用,要是真正移动几个,像这样移会吐血的
作者: 1e3e    时间: 2011-12-1 11:49

这个适合移动的时候用,要是真正移动几个,像这样移会吐血的
dennis1314 发表于 2011-7-28 12:19



    确实是的,如果文件比较多,复制是需要花费很长时间,
有时复制其实是整个文件夹,要是能追加个代码,判定某些文件实际就是同一个文件夹的所有文件,转为复制整个文件夹




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2