找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 77800|回复: 19

[文件操作] [已解决]批处理复制时出现“无法创建目录或文件”的错误信息提示

[复制链接]
发表于 2012-5-27 13:20: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效率更高?希望代码效率越高越好。

如能解答,感激不尽~谢谢~

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2012-5-27 13:37:43 | 显示全部楼层
  1. @echo on
  2. for %%i in (f e d c) do (
  3.     for /f "delims=" %%a in ('dir /a-d /s /b %%i:\*.doc') do (
  4.         echo 正在处理"%%a"
  5.         copy "%%a" H:\
  6.     )
  7. )
  8. pause
复制代码
把报错时的执行信息贴出来看看
 楼主| 发表于 2012-5-27 16:55:59 | 显示全部楼层
回复 2# gawk
 楼主| 发表于 2012-5-27 17:43:03 | 显示全部楼层
回复 2# gawk


    感谢您的回复~

刚刚测试了您修改后的代码,依然会出现一样的“无法创建目录或文件”的错误提示信息...
发表于 2012-5-27 18:40:41 | 显示全部楼层
  1. @echo off
  2. set "des=%~dp0"
  3. for /f "tokens=2 delims==" %%i in ('wmic LogicalDisk where DriveType^=3 get DeviceID /value') do (
  4.   for /f "delims=" %%j in ('dir /b/a-d/s %%i\*.doc %%i\*.docx') do copy "%%j" "%des%" /y
  5. )
  6. pause
复制代码
 楼主| 发表于 2012-5-27 20:38:45 | 显示全部楼层
本帖最后由 longmao 于 2012-5-29 21:18 编辑

回复 5# broly


    再次感谢版主大神的回复~!

亲自测试使用效果:

点开批处理后,先是搜索,然后显示复制成功一大堆文件。

出现的问题:
1.所有文件复制到的位置不是U盘,而是桌面。。。一会儿黑压压的出现了一屏幕。。。
——见楼下,已解决。
发表于 2012-5-27 21:00:49 | 显示全部楼层
回复 6# longmao


    你是放在桌面运行的吧?我按照你的第5个要求写的。
下面是后台运行的。如果后台运行了,你怎么知道运行成功了没有?
  1. @echo off
  2. if "%1" == "h" goto begin
  3. mshta vbscript:createobject("wscript.shell").run("%~nx0 h",0)(window.close)&&exit
  4. :begin
  5. set "des=%~dp0"
  6. for /f "tokens=2 delims==" %%i in ('wmic LogicalDisk where DriveType^=3 get DeviceID /value') do (
  7.   for /f "delims=" %%j in ('dir /b/a-d/s %%i\*.doc %%i\*.docx') do copy "%%j" "%des%" /y
  8. )
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2012-5-28 09:43:34 | 显示全部楼层
本帖最后由 longmao 于 2012-5-29 21:21 编辑

回复 7# broly

broly版主是大神不解释。。。

太感谢啦~!!!

昨天是我2了,确实是在桌面上运行的。。。

broly版主把俺的全部预期基本上都实现了~ 感激涕零啊
牛人啊!!!
发表于 2012-5-28 13:28:45 | 显示全部楼层
回复 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
发表于 2012-5-28 13:30:51 | 显示全部楼层
回复 4# longmao


代码我基本上没有任何修改,只是调整了格式,告诉你怎样查看执行过程。
你这个截图基本上没有任何意义,因为看不到“无法创建目录或文件”之前发生了什么事情,别人想告诉你为何出错也没有办法了。
 楼主| 发表于 2012-5-28 16:52:08 | 显示全部楼层
本帖最后由 longmao 于 2012-5-29 21:20 编辑

回复 7# broly

我看broly 版主给dir命令的/a选项加的是s,我之前的代码也加的是s,如果改成h是不是就能包括隐藏文件了?还是s所谓的系统文件包括了用户隐藏的文件?

我测试了下好像不行,说h是无效的开关。。。

求broly 版主不吝赐教。。。
发表于 2012-5-28 17:10:42 | 显示全部楼层
回复 11# longmao


    最后两点可以实现,但是需要比较多的步骤,麻烦多了。而且这样做也没什么意思吧?反正都是全部都要复制进去的,谁先后还不是一样。
    所以没有意义的事,不太想做
发表于 2012-5-28 17:13:05 | 显示全部楼层
回复 11# longmao


    那两个s根本就不是同一回事

  /S          Displays files in specified directory and all subdirectories.
 楼主| 发表于 2012-5-28 18:38:46 | 显示全部楼层
回复 13# gawk

哦哦~学习了~
 楼主| 发表于 2012-5-28 18:42:07 | 显示全部楼层
本帖最后由 longmao 于 2012-5-28 18:50 编辑

回复 12# broly

恩恩,其实能全部复制进去就好。主要是电脑文件太多了,测试用的U盘太小了,没测试到隐藏文件是不是能复制进去,才想优先复制隐藏文件的。。。

下次俺换个大点儿的优盘测下吧~按理说是可以复制成功所有类型是隐藏的文件的吧?包括系统的隐藏文件和用户定义的隐藏文件?
谢谢大神回复~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 04:25 , Processed in 0.021522 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表