中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-12 09:58
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]对文件夹中内容比较后进行操作 查看 1,168 回复 6
楼 主 [求助]对文件夹中内容比较后进行操作 发表于 2009-09-04 03:40
初级用户
积分 48
发帖 23
注册 2008-05-27 09:21
18年会员
UID 119801
性别 男
状态 离线
现有A B C 3个文件夹,

[ Last edited by hamihaha on 2009-9-7 at 03:58 ]
2 发表于 2009-09-04 04:54
初级用户
积分 48
发帖 23
注册 2008-05-27 09:21
18年会员
UID 119801
性别 男
状态 离线


[ Last edited by hamihaha on 2009-9-7 at 03:58 ]
3 发表于 2009-09-04 06:01 ·  中国 江西 赣州 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
18年会员
UID 96653
性别 男
状态 离线
是对比文件名还是文件内容?
4 发表于 2009-09-04 06:45
初级用户
积分 48
发帖 23
注册 2008-05-27 09:21
18年会员
UID 119801
性别 男
状态 离线
比较文件名,档案类型为TXT档。
5 发表于 2009-09-04 07:03 ·  中国 江西 赣州 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
18年会员
UID 96653
性别 男
状态 离线
@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 ]
6 发表于 2009-09-07 03:57
初级用户
积分 48
发帖 23
注册 2008-05-27 09:21
18年会员
UID 119801
性别 男
状态 离线
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段话吗?
7 发表于 2009-09-07 05:27 ·  中国 江西 赣州 安远县 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
18年会员
UID 96653
性别 男
状态 离线
:: 如果文件夹 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
论坛跳转: