标题: [文件操作] 批处理怎样复制文件夹? [打印本页]
作者: shuaige100 时间: 2010-7-5 12:26 标题: 批处理怎样复制文件夹?
- @echo off
- for /F "tokens=1,2*" %%a in ('dir F:\KuGou\*.*') do if "%%b"=="个文件" set a=%%a
- for %%a in (F:\KuGou\*.*) do (
- set/a b+=1
- XCOPY /D %%a I:\
- title 已复制!b!/%a%
复制代码
不知道为什么出现无效参数
[ 本帖最后由 shuaige100 于 2010-7-5 17:19 编辑 ]
作者: vsbat 时间: 2010-7-5 13:53
复制代码
试试这个
作者: shuaige100 时间: 2010-7-5 14:08 标题: 回复 2楼 的帖子
——不明白
[ 本帖最后由 shuaige100 于 2010-7-5 17:17 编辑 ]
作者: canyuexiaolang 时间: 2010-7-5 17:32
1.代码最后少了一个 )
2.没有开启变量延迟,还用!b!- @echo off
- setlocal enabledelayedexpansion
- set b=0
- for /F "tokens=1,2*" %%a in ('dir F:\KuGou\*.*') do if "%%b"=="个文件" set a=%%a
- for %%a in (F:\KuGou\*.*) do (
- set/a b+=1
- copy "%%a" I: 1>nul 2>nul
- echo 正在复制文件 [%%a] 到 [I:]
- title 已复制!b!/%a%
- )
- pause
复制代码
作者: canyuexiaolang 时间: 2010-7-5 17:33
出现无效参数的原因是因为你的 XCOPY运用错误吧!?
作者: shuaige100 时间: 2010-7-5 18:28 标题: 回复 4楼 的帖子
能用xcopy写个代码吗?这个才支持复制文件不覆盖吧?
作者: canyuexiaolang 时间: 2010-7-5 18:40
- @echo off
- setlocal enabledelayedexpansion
- set b=0
- for /F "tokens=1,2*" %%a in ('dir F:\KuGou\*.*') do if "%%b"=="个文件" set a=%%a
- for %%a in (F:\KuGou\*.*) do (
- set/a b+=1
- echo no|copy /-y "%%a" I: 1>nul 2>nul
- echo 正在复制文件 [%%a] 到 [I:]
- title 已复制!b!/%a%
- )
- 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 |