![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-02 14:15 |
共 48,038 主题排行 / 350,123 发帖 / 今日 1 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 麻烦高手帮我看下关于文件夹名的比较这个批处琢 tabindex= |
| 可打印版本 1,115 / 5 |
| 第1楼 yaoguof | 发表于 2006-11-30 08:02 |
| 初级用户 发帖 35 积分 90 | |
|
麻烦高手帮我看下关于文件夹名的比较这个批处琢 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 ] |
|
| 第2楼 tianzizhi | 发表于 2006-11-30 08:48 |
| 高级用户 发帖 214 积分 623 | |
|
你的没有判断条件.
@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 |
|
| 第3楼 yaoguof | 发表于 2006-11-30 22:18 |
| 初级用户 发帖 35 积分 90 | |
|
谢谢楼上的回复,
我刚才测试了一下,还是不行,没有把log1中多余的文件复制到log2中, 请问是否是 xcopy d:\log1\%%i d:\log2 中的%%i 引用的有问题呢? |
|
| 第4楼 reddragonfly | 发表于 2006-11-30 23:56 |
| 初级用户 发帖 21 积分 48 | |
|
@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 |
|
| 第5楼 yaoguof | 发表于 2006-12-01 00:52 |
| 初级用户 发帖 35 积分 90 | |
|
谢谢大家的回复,把后面的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 ] |
|
| 第6楼 reddragonfly | 发表于 2006-12-01 14:00 |
| 初级用户 发帖 21 积分 48 | |
|
拷贝文件夹的话只需要在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 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |