Board logo

标题: [文件操作] 批处理怎样复制文件夹? [打印本页]

作者: shuaige100    时间: 2010-7-5 12:26     标题: 批处理怎样复制文件夹?

  1. @echo off
  2. for /F "tokens=1,2*" %%a in ('dir F:\KuGou\*.*') do if "%%b"=="个文件" set a=%%a
  3. for %%a in (F:\KuGou\*.*) do (
  4. set/a b+=1
  5. XCOPY /D %%a I:\
  6. title 已复制!b!/%a%
复制代码
不知道为什么出现无效参数

[ 本帖最后由 shuaige100 于 2010-7-5 17:19 编辑 ]
作者: vsbat    时间: 2010-7-5 13:53

  1. copy   "F:\KuGou\个文件"    I:\
复制代码

试试这个
作者: shuaige100    时间: 2010-7-5 14:08     标题: 回复 2楼 的帖子

——不明白

[ 本帖最后由 shuaige100 于 2010-7-5 17:17 编辑 ]
作者: canyuexiaolang    时间: 2010-7-5 17:32

1.代码最后少了一个  )

2.没有开启变量延迟,还用!b!
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set b=0
  4. for /F "tokens=1,2*" %%a in ('dir F:\KuGou\*.*') do if "%%b"=="个文件" set a=%%a
  5. for %%a in (F:\KuGou\*.*) do (
  6. set/a b+=1
  7. copy "%%a" I: 1>nul 2>nul
  8. echo 正在复制文件 [%%a] 到 [I:]
  9. title 已复制!b!/%a%
  10. )
  11. pause
复制代码

作者: canyuexiaolang    时间: 2010-7-5 17:33

出现无效参数的原因是因为你的 XCOPY运用错误吧!?
作者: shuaige100    时间: 2010-7-5 18:28     标题: 回复 4楼 的帖子

能用xcopy写个代码吗?这个才支持复制文件不覆盖吧?
作者: canyuexiaolang    时间: 2010-7-5 18:40

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set b=0
  4. for /F "tokens=1,2*" %%a in ('dir F:\KuGou\*.*') do if "%%b"=="个文件" set a=%%a
  5. for %%a in (F:\KuGou\*.*) do (
  6. set/a b+=1
  7. echo no|copy /-y  "%%a" I: 1>nul 2>nul
  8. echo 正在复制文件 [%%a] 到 [I:]
  9. title 已复制!b!/%a%
  10. )
  11. pause
复制代码

作者: canyuexiaolang    时间: 2010-7-5 18:42

这样就可以了,copy /-y 提示覆盖,前面的echo no则表示不覆盖...

如果楼主就是看好Xcopy的话我也没办法

我觉得Xcopy加个X实在不好看,本身对于Xcopy也不熟
作者: shuaige100    时间: 2010-7-5 19:04     标题: 回复 8楼 的帖子

好像是这样,都查找出来了,不需要xcopy了

[ 本帖最后由 shuaige100 于 2010-7-5 19:07 编辑 ]
作者: canyuexiaolang    时间: 2010-7-5 19:05     标题: 回复 9楼 的帖子

怎么又改了啊...

[ 本帖最后由 canyuexiaolang 于 2010-7-5 19:20 编辑 ]
作者: shuaige100    时间: 2010-7-5 19:29     标题: 回复 10楼 的帖子

我没说你坏话啊,我刚才骂xcopy啊,我想问一下能不需要这个dir吗?因为这个要列出MP3而且还要查找一定很耗电脑内存和cpu

[ 本帖最后由 shuaige100 于 2010-7-5 19:30 编辑 ]
作者: canyuexiaolang    时间: 2010-7-5 19:57

用for /r 也可以列出的,不过好像有点暇眦啊、
你去看看for /r 的教程
作者: Batcher    时间: 2010-7-5 21:39     标题: 回复 12楼 的帖子

有什么瑕疵?
作者: canyuexiaolang    时间: 2010-7-6 06:43     标题: 回复 13楼 的帖子

1、for /r 列举出来的路径最后都带有斜杠和点号,而 dir 语句则没有,会对获取到的路径进行进一步加工产生影响;
2、for /r 不能列举带隐藏属性的目录,而 dir 语句则可以通过指定 /a 后面紧跟的参数来获取带指定属性的目录,更加灵活;
3、若要对获取到的路径进行进一步处理,则需要把 dir 语句放入 for /f 语句中进行分析,写成 for /f %%i in ('dir /ad /b /s') do …… 的形式;由于 for /r 语句是边列举路径边进行处理,所以,在处理大量路径的时候,前期不会感到有停顿,而 for /f 语句则需要等到 dir /ad /b /s 语句把所有路径都列举完之后,再读入内存进行处理,所以,在处理大量路径的时候,前期会感到有明显的停顿。
====================================================================
看FOR的教程发现的...
红色的部分是for的好处,蓝色的部分是暇眦

[ 本帖最后由 canyuexiaolang 于 2010-7-6 06:45 编辑 ]




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