标题: DOS批处理高手入选小考题(张榜),谁来揭榜?
[打印本页]
作者: GOTOmsdos
时间: 2004-11-9 00:00
标题: DOS批处理高手入选小考题(张榜),谁来揭榜?
假设你有很多重复的目录,在c,d两个盘中,但你又不知道他们在哪里,
怎样用一句批处理删掉d盘中的重复目录(假设属性都是可删的)要求:只用一句
作者: qzwqzw
时间: 2004-11-11 00:00
难了点吧,在98下根本没有什么好办法,更别说一句dos命令。从网上下载专用软件把。
作者: Climbing
时间: 2004-11-12 00:00
这个问题已经在前面的帖子中解决了。看下面的示例:@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 测试结果:目录名同样是有扩展名的。