中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-06 22:58
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何拷贝所有文件夹中一个最新的文件到其他文件夹? 查看 2,025 回复 17
16 高手呀 发表于 2007-12-20 16:34 ·  中国 云南 昆明 移动
新手上路
积分 17
发帖 10
注册 2007-12-06 15:52
18年会员
UID 104857
性别 男
状态 离线
能不能解释一下每一句的意思呀?
17 发表于 2007-12-20 16:36 ·  中国 上海 普陀区 电信
初级用户
积分 120
发帖 48
注册 2007-12-01 19:05
18年会员
UID 104373
性别 男
状态 离线
不过就是第2行 ('dir /a-d /b /s "%%a"') 里面要多加个 /od

('dir /a-d /b /s /od "%%a"')这样,,呵呵
18 发表于 2007-12-20 16:48 ·  中国 上海 普陀区 电信
初级用户
积分 120
发帖 48
注册 2007-12-01 19:05
18年会员
UID 104373
性别 男
状态 离线
第一个for循环找出f:\test\下所有文件夹的名字。/ad 显示目录 /b使用空格式 /s显示文件夹中的文件,,因为这里已经是/AD了所以/S有没有都无所谓,

第二个for循环,第一个for检索出来的文件夹名为%%a,在%%a中搜索文件

/od 为从先到后(修改时间顺序),"%%~dpnxb"该文件夹中文件的绝对路径,其中参数相关说明查看for /?

set scopy="%%~dpnxb" 就是依次把带路径的文件名赋给scopy,按修改时间依次赋给scopy,最后次赋值scopy得到最新的文件,

call copy %%scopy%% D:\ 把找到的文件拷贝到d盘

然后再执行第一个for循环,检索f:\test\下其他文件夹名


for do()里要加call然后再copy,我不知道这是为什么,,望高手指点。
论坛跳转: