中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]对文件夹中内容比较后进行操作
作者:
标题: [求助]对文件夹中内容比较后进行操作 上一主题 | 下一主题
hamihaha
初级用户





积分 48
发帖 23
注册 2008-5-27
状态 离线
『楼 主』:  [求助]对文件夹中内容比较后进行操作

现有A B C 3个文件夹,

[ Last edited by hamihaha on 2009-9-7 at 03:58 ]

2009-9-4 03:40
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
hamihaha
初级用户





积分 48
发帖 23
注册 2008-5-27
状态 离线
『第 2 楼』:  



[ Last edited by hamihaha on 2009-9-7 at 03:58 ]

2009-9-4 04:54
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
tireless
银牌会员





积分 2025
发帖 1122
注册 2007-9-5
状态 离线
『第 3 楼』:  

是对比文件名还是文件内容?

2009-9-4 06:01
查看资料  发短消息 网志   编辑帖子  回复  引用回复
hamihaha
初级用户





积分 48
发帖 23
注册 2008-5-27
状态 离线
『第 4 楼』:  

比较文件名,档案类型为TXT档。

2009-9-4 06:45
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
tireless
银牌会员





积分 2025
发帖 1122
注册 2007-9-5
状态 离线
『第 5 楼』:  


@echo off
set "A=A"
set "B=B"
set "C=C"

for %%a in ("%A%" "%B%") do if not exist %%a\*.txt exit /b
for /f "delims=" %%a in ('dir /a-d/b "%A%\*.txt"') do if not exist "%B%\%%a" exit /b
for /f "delims=" %%a in ('dir /a-d/b "%B%\*.txt"') do if not exist "%A%\%%a" exit /b
del /a /f "%A%\*.txt"
move "%B%\*" "%C%" >nul
pause
[ Last edited by tireless on 2009-9-4 at 07:23 ]

2009-9-4 07:03
查看资料  发短消息 网志   编辑帖子  回复  引用回复
hamihaha
初级用户





积分 48
发帖 23
注册 2008-5-27
状态 离线
『第 6 楼』:  

for %%a in ("%A%" "%B%") do if not exist %%a\*.txt exit /b
for /f "delims=" %%a in ('dir /a-d/b "%A%\*.txt"') do if not exist "%B%\%%a" exit /b
for /f "delims=" %%a in ('dir /a-d/b "%B%\*.txt"') do if not exist "%A%\%%a" exit /b

能解释下,上面3段话吗?

2009-9-7 03:57
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
tireless
银牌会员





积分 2025
发帖 1122
注册 2007-9-5
状态 离线
『第 7 楼』:  

:: 如果文件夹 A 或 B 下不存在 *.txt,就退出批处理。
for %%a in ("%A%" "%B%") do if not exist %%a\*.txt exit /b

:: 列出文件夹 A 下的文件名,判断文件夹 B 下是否存在该文件,不存在就退出批处理。
for /f "delims=" %%a in ('dir /a-d/b "%A%\*.txt"') do if not exist "%B%\%%a" exit /b

:: 列出文件夹 B 下的文件名,判断文件夹 A 下是否存在该文件,不存在就退出批处理。
for /f "delims=" %%a in ('dir /a-d/b "%B%\*.txt"') do if not exist "%A%\%%a" exit /b

2009-9-7 05:27
查看资料  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: