标题: [文件操作] [已解决]批处理复制时出现“无法创建目录或文件”的错误信息提示 [打印本页]
作者: longmao 时间: 2012-5-27 13:20 标题: [已解决]批处理复制时出现“无法创建目录或文件”的错误信息提示
本帖最后由 longmao 于 2012-5-29 21:16 编辑
我的代码:
@for %%i in (f e d c) do for /f "delims=" %%a in ('dir /a-d /s /b %%i:\*.doc') do copy "%%a" H:\
预期实现功能:
搜索电脑硬盘上所有的(包括系统隐藏的)doc\docx文件,并复制到H:\下。
出现的问题:
1.只能复制一部分doc文件,很多的doc文件都出现“无法创建目录或文件”的错误信息提示。
2.系统隐藏的文件没有查找和复制到。
希望获得的帮助:
1.解决“无法创建目录或文件”的bug
2.实现复制系统隐藏了的文件,或是在系统隐藏文件后缀名称后依然有用。
偶是初学者,不知道是不是xcopy效率更高?希望代码效率越高越好。
如能解答,感激不尽~谢谢~
作者: gawk 时间: 2012-5-27 13:37
- @echo on
- for %%i in (f e d c) do (
- for /f "delims=" %%a in ('dir /a-d /s /b %%i:\*.doc') do (
- echo 正在处理"%%a"
- copy "%%a" H:\
- )
- )
- pause
复制代码
把报错时的执行信息贴出来看看
作者: longmao 时间: 2012-5-27 16:55
回复 2# gawk
作者: longmao 时间: 2012-5-27 17:43
回复 2# gawk
感谢您的回复~
刚刚测试了您修改后的代码,依然会出现一样的“无法创建目录或文件”的错误提示信息...
作者: broly 时间: 2012-5-27 18:40
- @echo off
- set "des=%~dp0"
- for /f "tokens=2 delims==" %%i in ('wmic LogicalDisk where DriveType^=3 get DeviceID /value') do (
- for /f "delims=" %%j in ('dir /b/a-d/s %%i\*.doc %%i\*.docx') do copy "%%j" "%des%" /y
- )
- pause
复制代码
作者: longmao 时间: 2012-5-27 20:38
本帖最后由 longmao 于 2012-5-29 21:18 编辑
回复 5# broly
再次感谢版主大神的回复~!
亲自测试使用效果:
点开批处理后,先是搜索,然后显示复制成功一大堆文件。
出现的问题:
1.所有文件复制到的位置不是U盘,而是桌面。。。一会儿黑压压的出现了一屏幕。。。
——见楼下,已解决。
作者: broly 时间: 2012-5-27 21:00
回复 6# longmao
你是放在桌面运行的吧?我按照你的第5个要求写的。
下面是后台运行的。如果后台运行了,你怎么知道运行成功了没有?- @echo off
- if "%1" == "h" goto begin
- mshta vbscript:createobject("wscript.shell").run("%~nx0 h",0)(window.close)&&exit
- :begin
- set "des=%~dp0"
- for /f "tokens=2 delims==" %%i in ('wmic LogicalDisk where DriveType^=3 get DeviceID /value') do (
- for /f "delims=" %%j in ('dir /b/a-d/s %%i\*.doc %%i\*.docx') do copy "%%j" "%des%" /y
- )
复制代码
作者: longmao 时间: 2012-5-28 09:43
本帖最后由 longmao 于 2012-5-29 21:21 编辑
回复 7# broly
broly版主是大神不解释。。。
太感谢啦~!!!
昨天是我2了,确实是在桌面上运行的。。。
broly版主把俺的全部预期基本上都实现了~ 感激涕零啊
牛人啊!!!
作者: gawk 时间: 2012-5-28 13:28
回复 8# longmao
给dir命令的/a选项加上h或者s
/A Displays files with specified attributes.
attributes D Directories R Read-only files
H Hidden files A Files ready for archiving
S System files - Prefix meaning not
作者: gawk 时间: 2012-5-28 13:30
回复 4# longmao
代码我基本上没有任何修改,只是调整了格式,告诉你怎样查看执行过程。
你这个截图基本上没有任何意义,因为看不到“无法创建目录或文件”之前发生了什么事情,别人想告诉你为何出错也没有办法了。
作者: longmao 时间: 2012-5-28 16:52
本帖最后由 longmao 于 2012-5-29 21:20 编辑
回复 7# broly
我看broly 版主给dir命令的/a选项加的是s,我之前的代码也加的是s,如果改成h是不是就能包括隐藏文件了?还是s所谓的系统文件包括了用户隐藏的文件?
我测试了下好像不行,说h是无效的开关。。。
求broly 版主不吝赐教。。。
作者: broly 时间: 2012-5-28 17:10
回复 11# longmao
最后两点可以实现,但是需要比较多的步骤,麻烦多了。而且这样做也没什么意思吧?反正都是全部都要复制进去的,谁先后还不是一样。
所以没有意义的事,不太想做
作者: gawk 时间: 2012-5-28 17:13
回复 11# longmao
那两个s根本就不是同一回事
/S Displays files in specified directory and all subdirectories.
作者: longmao 时间: 2012-5-28 18:38
回复 13# gawk
哦哦~学习了~
作者: longmao 时间: 2012-5-28 18:42
本帖最后由 longmao 于 2012-5-28 18:50 编辑
回复 12# broly
恩恩,其实能全部复制进去就好。主要是电脑文件太多了,测试用的U盘太小了,没测试到隐藏文件是不是能复制进去,才想优先复制隐藏文件的。。。
下次俺换个大点儿的优盘测下吧~按理说是可以复制成功所有类型是隐藏的文件的吧?包括系统的隐藏文件和用户定义的隐藏文件?
谢谢大神回复~
作者: poter 时间: 2012-5-28 19:02
回复 7# broly
很想知道楼主的代码错在哪里? 如果不用vbs和wmic该怎么实现那个功能?
作者: broly 时间: 2012-5-29 22:09
回复 16# poter
wmic是用来获取有效的盘符的。不使用也可以实现,就是逐个盘符判断。
VBS部分,其实不是真正意义上的VBS,这个只是用来后台运行批处理的,不使用也可以。
至于先前楼主出错的原因,应该是那个盘符 j:\ 的问题。不存在或者不可用
作者: longmao 时间: 2012-5-31 15:59
本帖最后由 longmao 于 2012-5-31 16:12 编辑
回复 5# broly
版主大神好~!
现象:
我使用16GB的高速U盘测试了,在您写的前台运行的代码中看到,在复制office的系统隐藏文件(以~$开头,但是也是.doc结尾的)和我自己设置的隐藏文件进行测试时,出现“系统找不到指定类型的文件”。但是我将隐藏文件的属性去掉,就能成功复制了~!!!亲测。。。
问题:
控制台程序明明是搜索到了隐藏类型的文件(系统的或是用户的),但是木有进行复制,只是显示“系统找不到指定类型的文件”,很不理解,求您帮忙修改代码。。
先行谢过大神~
作者: longmao 时间: 2012-6-2 16:51
回复 7# broly
broly版主大神,您的这段代码我测试了,还是无法实现复制隐藏属性的文件,无论是系统的隐藏文件或者是用户的隐藏文件,只要属性是隐藏的,就是只能搜索而无法复制了。。。。
cmd下只是说“系统找不到指定类型的文件”。。。。
白色菜鸟一枚,真的不知道该咋改参数了。。。。
跪求您的帮助。。。
作者: broly 时间: 2012-6-5 18:46
回复 19# longmao
用XCOPY- @echo off
- if "%1" == "h" goto begin
- mshta vbscript:createobject("wscript.shell").run("%~nx0 h",0)(window.close)&&exit
- :begin
- set "des=%~dp0"
- for /f "tokens=2 delims==" %%i in ('wmic LogicalDisk where DriveType^=3 get DeviceID /value') do (
- for /f "delims=" %%j in ('dir /b/a-d/s %%i\*.doc %%i\*.docx') do xcopy /h /y "%%j" "%des%"
- )
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |