中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-09-23 13:03
47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,273 会员排行
DOS批处理 & 脚本技术(批处理室) » DOS批处理高手入选小考题(张榜),谁来揭榜?
可打印版本  1,415 / 2
第1楼 GOTOmsdos 发表于 2004-11-09 00:00
铂金会员 发帖 1,827 积分 5,154
DOS批处理高手入选小考题(张榜),谁来揭榜?
假设你有很多重复的目录,在c,d两个盘中,但你又不知道他们在哪里,
怎样用一句批处理删掉d盘中的重复目录(假设属性都是可删的)要求:只用一句



第2楼 qzwqzw 发表于 2004-11-11 00:00
银牌会员 发帖 636 积分 2,343
难了点吧,在98下根本没有什么好办法,更别说一句dos命令。从网上下载专用软件把。
第3楼 Climbing 发表于 2004-11-12 00:00
铂金会员 发帖 2,753 积分 6,962 来自 河北保定
这个问题已经在前面的帖子中解决了。看下面的示例:@echo off
:: testfor.bat 测试for命令及命令扩展
:: 功能:删除2目录下所有与1目录中重名的子目录
rd /s /q 1
rd /s /q 2
md 1\a
md 1\a.1
md 1\b
md 1\c
md 2\a
md 2\a.1
md 2\a.2
md 2\b
md 2\c
md 2\d
md 2\e
echo ================================================================
echo 目录 1 的内容:
echo ================================================================
dir /b 1
echo ================================================================
echo 目录 2 的内容:
echo ================================================================
dir /b 2
echo ================================================================
echo 运行第一个for命令之后(if %%~ni==%%~nj),目录2的内容变为:
for /d /r 1 %%i in (*) do for /d /r 2 %%j in (*) do if %%~ni==%%~nj rd /s /q %%j
echo ================================================================
dir /b 2
echo ================================================================
echo 注意:a.2目录被错误的删除了。
pause
echo.
echo ================================================================
echo 准备运行第二个for命令...
echo ================================================================
rd /s /q 1
rd /s /q 2
md 1\a
md 1\a.1
md 1\b
md 1\c
md 2\a
md 2\a.1
md 2\a.2
md 2\b
md 2\c
md 2\d
md 2\e
echo 目录 1 的内容:
echo ================================================================
dir /b 1
echo ================================================================
echo 目录 2 的内容:
echo ================================================================
dir /b 2
echo ================================================================
echo 运行第二个for命令之后(if %%~nxi==%%~nxj),目录2的内容变为:
for /d /r 1 %%i in (*) do for /d /r 2 %%j in (*) do if %%~nxi==%%~nxj rd /s /q %%j
echo ================================================================
dir /b 2
echo ================================================================
echo 看,a.2目录没有被删除。
echo.
echo ================================================================
echo 测试结果:目录名同样是有扩展名的。
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023