[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

本帖最后由 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效率更高?希望代码效率越高越好。

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

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

  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
复制代码
把报错时的执行信息贴出来看看

TOP

回复 2# gawk

TOP

回复 2# gawk


    感谢您的回复~

刚刚测试了您修改后的代码,依然会出现一样的“无法创建目录或文件”的错误提示信息...

TOP

  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
复制代码
---学无止境---

TOP

本帖最后由 longmao 于 2012-5-29 21:18 编辑

回复 5# broly


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

亲自测试使用效果:

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

出现的问题:
1.所有文件复制到的位置不是U盘,而是桌面。。。一会儿黑压压的出现了一屏幕。。。
——见楼下,已解决。

TOP

回复 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

评分人数

---学无止境---

TOP

本帖最后由 longmao 于 2012-5-29 21:21 编辑

回复 7# broly

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

太感谢啦~!!!

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

broly版主把俺的全部预期基本上都实现了~ 感激涕零啊
牛人啊!!!

TOP

回复 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

TOP

回复 4# longmao


代码我基本上没有任何修改,只是调整了格式,告诉你怎样查看执行过程。
你这个截图基本上没有任何意义,因为看不到“无法创建目录或文件”之前发生了什么事情,别人想告诉你为何出错也没有办法了。

TOP

本帖最后由 longmao 于 2012-5-29 21:20 编辑

回复 7# broly

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

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

求broly 版主不吝赐教。。。

TOP

回复 11# longmao


    最后两点可以实现,但是需要比较多的步骤,麻烦多了。而且这样做也没什么意思吧?反正都是全部都要复制进去的,谁先后还不是一样。
    所以没有意义的事,不太想做
---学无止境---

TOP

回复 11# longmao


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

  /S          Displays files in specified directory and all subdirectories.

TOP

回复 13# gawk

哦哦~学习了~

TOP

本帖最后由 longmao 于 2012-5-28 18:50 编辑

回复 12# broly

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

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

TOP

返回列表