中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-13 19:08
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 文件夹下面的所有子文件夹里的文件复制到新的文件夹下
楼 主 文件夹下面的所有子文件夹里的文件复制到新的文件夹下 发表于 2008-03-09 15:34 ·  中国 浙江 杭州 余杭区 电信
初级用户
★★
积分 155
发帖 74
注册 2007-02-21 07:24
UID 79875
性别 男
状态 离线
如何用批处理实现将一个文件夹下面的所有子文件夹下面的文件复制到一个新的文件夹下面!
2 发表于 2008-03-09 18:41 ·  中国 福建 福州 连江县 联通
高级用户
★★
积分 581
发帖 277
注册 2006-12-23 05:10
UID 74328
性别 男
状态 离线
xcopy *.* 新文件夹 /e
3 发表于 2008-03-10 19:07 ·  中国 浙江 杭州 余杭区 电信
初级用户
★★
积分 155
发帖 74
注册 2007-02-21 07:24
UID 79875
性别 男
状态 离线
首先谢谢你,不过你理解错误了,你这样的话,文件夹也一起复制了,我要的只是文件,文件夹不要。
4 发表于 2008-03-10 19:22 ·  中国 陕西 西安 电信
银牌会员
★★★★
钻石会员
积分 2,278
发帖 1,020
注册 2007-11-19 13:34
UID 103127
性别 男
状态 离线
山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
5 发表于 2008-03-10 19:24 ·  中国 江苏 苏州 吴江区 电信
银牌会员
★★★
积分 1,608
发帖 780
注册 2007-10-07 10:19
UID 99089
性别 男
状态 离线

@echo off
md hehe
for /f "delims=" %%i in ('dir /s/b e:\办公学习\*.*') do (
copy %%i hehe
)

但是怕你不同文件夹下面有重名的文件!
以上代码没有考虑出现这种事情的可能性!
6 发表于 2008-03-10 19:39 ·  中国 浙江 杭州 中移铁通
银牌会员
★★★
积分 1,436
发帖 739
注册 2007-10-11 17:44
UID 99469
性别 男
状态 离线
@echo off
set source=a
set destination=b
for /r "%source%\" %%i in (*) do (
xcopy "%%i" "%destination%\" /y/i
)
pause
7 发表于 2008-03-10 20:36 ·  中国 陕西 西安 电信
银牌会员
★★★★
钻石会员
积分 2,278
发帖 1,020
注册 2007-11-19 13:34
UID 103127
性别 男
状态 离线
新人和我们一样懒

这是那个链接网页的内容,不会把同名文件覆盖:

将D:\music1\ D:\music2\ D:\music3\目录的*.mp3文件要移动到U盘(G:\music)下:(若是拷贝将move直接换为copy)
CODE:
--------------------------------------------------------------------------------

@echo off&setlocal enabledelayedexpansion
set "file=music1\*.mp3 music2\*.mp3 music3\*.mp3"
set "drive=D:\"
set "U=G:\music\"
for /r "%drive%" %%a in (%file%) do (
if exist "!U!%%~nxa" call :re "%%~na" "%%~xa"
move "%%a" "!U!%%~na!n!%%~xa"
)
goto :eof
:re
set "n=1"
:loop
if exist "!U!%~1_%n%%~2" set/a n+=1&goto loop
set "n=_%n%"&goto :eof
将D:盘内的所有(包括子目录内的)mp3文件copy到...
CODE:
--------------------------------------------------------------------------------

@echo off&setlocal enabledelayedexpansion
set "file=*.mp3"
set "drive=D:\"
set "U=G:\music\"
for /r "%drive%" %%a in (%file%) do (
if exist "!U!%%~nxa" call :re "%%~na" "%%~xa"
move "%%a" "!U!%%~na!n!%%~xa"
)
goto :eof
:re
set "n=1"
:loop
if exist "!U!%~1_%n%%~2" set/a n+=1&goto loop
set "n=_%n%"&goto :eof
未测试.
若有疑问请到下面的帖子跟帖:

http://www.cn-dos.net/forum/view ... ge=1&highlight=
山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
8 发表于 2008-03-10 20:59 ·  中国 浙江 杭州 余杭区 电信
初级用户
★★
积分 155
发帖 74
注册 2007-02-21 07:24
UID 79875
性别 男
状态 离线
谢谢各位,学习了,其实也不是我懒,主要是我搜了好多次也没有找到。再次说声谢谢!
论坛跳转: