中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-12 23:20
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » 请教如何删除两个文件夹中的相同文件
可打印版本  1,611 / 9
第1楼 lqhaudit 发表于 2010-01-04 11:53
初级用户 发帖 13 积分 132
请教如何删除两个文件夹中的相同文件
请教:有两个文件夹A和B,有相同文件。我想将A中与B中相同的文件删除。如何写个BAT命令 ?
第2楼 lqhaudit 发表于 2010-01-04 15:09
初级用户 发帖 13 积分 132
经过刻苦钻研^_^。终于搞定了。BAT文件内容如下(对子文件夹的文件没有试验):

REM 将本BAT放到源文件夹中,删除目标文件夹中相同的文件
FOR %%D IN (*.mp3) DO del 目标文件夹\%%D
第3楼 qinchun36 发表于 2010-01-04 15:15
高级用户 发帖 400 积分 609
包括子文件夹

@echo off
echo ====== 开始比较 ======
for /f "delims=" %%a in ('dir /s /b A') do (
for /f "delims=" %%b in ('dir /s /b B') do (
if "%%~na"=="%%~nb" (
echo 正在删除 "%%a"
del /q "%%a"
)
)
)
echo ======== 完成 ========
pause>nul

[ Last edited by qinchun36 on 2010-1-4 at 15:26 ]
第4楼 lqhaudit 发表于 2010-01-05 14:01
初级用户 发帖 13 积分 132
谢谢。真是高手啊。
虽然还看不懂。原来可以多个DO 命令套嵌。del /q "%%a" 不加路径吗?"A\%%a"
第5楼 HAT 发表于 2010-01-05 20:54
版主 发帖 5,017 积分 9,023
Re 4楼
不需要。因为dir /s会得到文件的完整路径。
第6楼 Rstv 发表于 2010-01-12 07:53
新手上路 发帖 12 积分 15
Originally posted by HAT at 2010-1-5 20:54:
不需要。因为dir /s会得到文件的完整路径。


/b

且回3楼:
依LZ原意,第2个 for 改成如下可提高效率
for /R B %%b in (%%~na) do ...
。。。

[ Last edited by Rstv on 2010-1-12 at 08:11 ]
第7楼 HAT 发表于 2010-01-12 09:50
版主 发帖 5,017 积分 9,023
Re 6楼
Are you joking?

/B Uses bare format (no heading information or summary).
/S Displays files in specified directory and all subdirectories.
第8楼 Rstv 发表于 2010-01-12 11:31
新手上路 发帖 12 积分 15
稍安勿燥self
先假定没有子目录, 所以也没有 /S (为方便举例暂不虑
要取得可利用的文件列表:
C:\>dir
驱动器 C 中的卷没有标签。
卷的序列号是 Acde-7376

C:\ 的目录

yyyy-mm-dd hh:mm <DIR> 你要的东西在这儿呢
yyyy-mm-dd hh:mm 123 前前后后,左左(无右右)
yyyy-mm-dd hh:mm 456 还有那么多无用信息
yyyy-mm-dd hh:mm 789 怎么处理呀??
3 个文件 1,368 字节
1 个目录 221,220,864 可用字节

所以,起作用的还是 /B。
当然,要对目录树操作,当然还要有 /S 了
再重申一下,/S 只是树操作,/B 才是实质关键,无可争辩,毫无质疑。

也所以,我自己一仓促只写了一半,应该是 /b /s 缺一不可
~~看来确实是 3*0.5 >1 啊...
第9楼 HAT 发表于 2010-01-12 16:37
版主 发帖 5,017 积分 9,023
既然/b /s 缺一不可,那么/B 才是实质关键,无可争辩,毫无质疑的结论是如何得出的呢?
第10楼 Rstv 发表于 2010-01-12 19:28
新手上路 发帖 12 积分 15
逻辑的最高境界是——
糊涂
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023