中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 麻烦高手帮我看下关于文件夹名的比较这个批处琢 tabindex=
作者:
标题: 麻烦高手帮我看下关于文件夹名的比较这个批处琢 tabindex= 上一主题 | 下一主题
yaoguof
初级用户





积分 90
发帖 35
注册 2006-10-23
状态 离线
『楼 主』:  麻烦高手帮我看下关于文件夹名的比较这个批处琢 tabindex=

目的:比较log1和log2的2个文件夹的文件,把log1比log2中多出来的文件夹复制到log2中,自己看不出那里有问题,但是运行没有结果 @echo off dir d:\log1 /ad /b >>1.txt dir d:\log2 /ad /b >>2.txt setlocal enabledelayedexpansion for /f "delims=" %%i in (1.txt) do @echo %%i findstr "%%i" 2.txt xcopy d:\log1\%%i d:\log2 [ Last edited by yaoguof on 2006-12-1 at 01:43 AM ]


2006-11-30 08:02
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
tianzizhi
高级用户




积分 622
发帖 214
注册 2006-9-22
状态 离线
『第 2 楼』:  

你的没有判断条件. @echo off dir d:\log1 /ad /b >>1.txt dir d:\log2 /ad /b >>2.txt for /f "delims=" %%i in (1.txt) do ( echo %%i findstr /i %%i 2.txt if errorlevel==1 xcopy d:\log1\%%i d:\log2 ) del 1.txt del 2.txt


   此帖被 +1 点积分    点击查看详情   
评分人:【 yaoguof 分数: +1  时间:2006-12-1 01:40


2006-11-30 08:48
查看资料  发送邮件  发短消息 网志  OICQ (419503077)  编辑帖子  回复  引用回复
yaoguof
初级用户





积分 90
发帖 35
注册 2006-10-23
状态 离线
『第 3 楼』:  

谢谢楼上的回复, 我刚才测试了一下,还是不行,没有把log1中多余的文件复制到log2中, 请问是否是 xcopy d:\log1\%%i d:\log2 中的%%i 引用的有问题呢?


2006-11-30 22:18
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
reddragonfly
初级用户

DOSFans


积分 48
发帖 21
注册 2006-10-22
状态 离线
『第 4 楼』:  

@echo off cls dir /a /b d:\log1>>1.txt dir /a /b d:\log2>>2.txt for /f "tokens=*" %%i in (1.txt) do ( findstr /i "%%i" d:\2.txt if errorlevel 1 xcopy d:\log1\"%%i" d:\log2&echo 拷贝成功&goto :eof ) del 1.txt;2.txt echo log1中不存在log2中没有的文件 pause 1>nul


   此帖被 +2 点积分    点击查看详情   
评分人:【 yaoguof 分数: +2  时间:2006-12-1 01:41




批处理:探索你的世界到底有多精彩!
2006-11-30 23:56
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (42118593)  编辑帖子  回复  引用回复
yaoguof
初级用户





积分 90
发帖 35
注册 2006-10-23
状态 离线
『第 5 楼』:  

谢谢大家的回复,把后面的goto :eof去掉就可以循环了 不过还是有一个小问题 我用xcopy d:\log1\"%%i" d:\log2 /e 或者xcopy d:\log1\"%%i" d:\log2 /s 都不能把log1中的文件夹拷贝过去,每次都是直接把log1文件夹下的文件全部拷贝到log2的文件夹中,不能把目录拷贝过去 请指点一下,那里出问题了,试了好久都不明白 [ Last edited by yaoguof on 2006-12-1 at 01:46 AM ]


2006-12-1 00:52
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
reddragonfly
初级用户

DOSFans


积分 48
发帖 21
注册 2006-10-22
状态 离线
『第 6 楼』:  

拷贝文件夹的话只需要在xcopy命令后面加参数/s /e就可以了,经测试可行,内容如下: @echo off cls dir /a /b d:\log1>>1.txt dir /a /b d:\log2>>2.txt for /f "tokens=*" %%i in (1.txt) do ( findstr /i "%%i" d:\2.txt if errorlevel 1 xcopy /s /e d:\log1\"%%i" d:\log2&echo 拷贝成功 ) del 1.txt;2.txt pause 1>nul&goto :eof




批处理:探索你的世界到底有多精彩!
2006-12-1 14:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (42118593)  编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: