中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [未结]带点畸形目录 批量 非空判断访问删除
« [1] [2] [3] [4] [5] »
作者:
标题: [未结]带点畸形目录 批量 非空判断访问删除 上一主题 | 下一主题
plp626
银牌会员

钻石会员


积分 2278
发帖 1020
注册 2007-11-19
状态 离线
『第 46 楼』:  删除任意畸形目录

不知为啥代码稍一精简就出错,有个bug还是没消除(不过不容易碰到),有时间再弄吧, 把我给测试晕了,谁有耐心,就慢慢调试吧.
对付10楼那类畸形文件带点目录内含"空参目录",不管有多深!
(放在畸形目录所在路径下运行),这个代码目前没有发现bug
@echo off&mode con lines=2 cols=15
for /f "delims=" %%a in ('dir/ad/s/b^|findstr /e "\."') do (
set a=%%a
setlocal enabledelayedexpansion
call set a=!!a:%%~dpa=!!
call :nul "!a!" "%%~dpa"
popd
)
goto :eof
:nul
pushd %2 2>nul||(echo &del +&goto :eof)
rd /q/s "%b%%~1.\">+ 2>&1
find "\" +>nul||(del +&goto :eof)
for /f %%b in ('sort /r +') do rd/q/s "%%b\" 2>nul
goto nul
任意的畸形目录:"空参目录"内含带点目录以及反者(放在畸形目录所在路径下运行)
@echo off
::ntfs格式下测试,
for /f "delims=" %%a in ('dir/ad/s/b^|findstr /e "\."') do (
set a=%%a
setlocal enabledelayedexpansion
call set a=!!a:%%~dpa=!!
call :nul "!a!" "%%~dpa"
popd
)
pause
goto :eof
:nul
pushd %2 2>nul||call :con %*
:nul1
rd /q/s "%b%%~1.\">+ 2>&1
find "\" +>nul||(del +&goto :eof)
for /f %%b in ('sort /r +') do rd/q/s "%%b\" 2>nul
goto nul
:con
set b=%2
call set b=!!b:%~dp0=!!
goto nul1
[ Last edited by plp626 on 2008-3-14 at 08:43 PM ]

   此帖被 +2 点积分    点击查看详情   
评分人:【 523066680 分数: +2  时间:2008-3-15 18:16




山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
2008-3-9 16:36
查看资料  发短消息 网志   编辑帖子  回复  引用回复
plp626
银牌会员

钻石会员


积分 2278
发帖 1020
注册 2007-11-19
状态 离线
『第 47 楼』:  

想想真是没事整事,吃多了撑得,想构造一个bug都很难,我就不相信病毒有多变态.

轻轻一点,一切搞定,

回523066680,46楼第2个的代码基本上可以干掉所有可见带点畸形目录.

请测试.(确实有bug但...)

[ Last edited by plp626 on 2008-3-9 at 06:17 PM ]



山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
2008-3-9 18:16
查看资料  发短消息 网志   编辑帖子  回复  引用回复
plp626
银牌会员

钻石会员


积分 2278
发帖 1020
注册 2007-11-19
状态 离线
『第 48 楼』:  

总结:
最坏的情况就是根目录树下有大量病态的深层的畸形目录,最深层为"空参目录"
为了不时自己盘内的文件随这些目录一起殉葬,就不能直接从最外层目录,用rd/q/s 来删,若有可用文件在空参目录内,那就先把这些文件移出来:(见下面的帖子----文件抽取)
http://www.cn-dos.net/forum/view ... 1&highlight=###

若你没有给这些空参目录存放文件,(大部分人都没有)那就在根目录内用46楼2代码(在根目录下双击)

其实,知道了病毒的藏身处(那就是不必考虑误删文件了),大可不必这样兴师动众,其实两条命令:
1, rd/q/s >road.txt 2>&1 ... 就获得了深层路径
2, for /f %a in ('sort /r road.txt') do rd /q/s %a\删最深层目录
然后循环1,2,直至删完所有畸形目录

像46楼的代码是自己给自己找麻烦才用得上!

[ Last edited by plp626 on 2008-3-10 at 12:25 AM ]



山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
2008-3-9 19:01
查看资料  发短消息 网志   编辑帖子  回复  引用回复
523066680
银牌会员

SuperCleaner


积分 2362
发帖 1133
注册 2008-2-2
状态 离线
『第 49 楼』:  

你的探索精神!……plp626一定会前途无量的,可惜我得读书了,不能常向你学习了,你的代码里好多我都不懂的


去试了一下代码 啊牛啊!你太牛逼了!
第二段代码 第一次打开时,只删除有文件的文件夹,再打开,就把其他机型文件夹删除了,不过不会删除普通文件夹

我去给你的帖加分咯!

[ Last edited by 523066680 on 2008-3-15 at 06:16 PM ]

2008-3-14 18:36
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (523066680)  编辑帖子  回复  引用回复
plp626
银牌会员

钻石会员


积分 2278
发帖 1020
注册 2007-11-19
状态 离线
『第 50 楼』:  

re: IF EXIST(已加了,o(∩_∩)o...)
  
    对于畸形目录(空参的或带点的),不管里面再建立什么目录(资源管理器下可见),其实之一行命令即可搞定,并且立竿见影:
rd /s /q \\?\[带点畸形目录的绝对路径]
所以对付畸形目录不必用46楼的代码了
::建立123..\nul\con\nul\目录
md 123..\ 123..\nul\ 123..\nul\con\ 123..\nul\con\nul\
::删除123.目录
rd /q/s "\\?\%cd%\123."
不过这招对资源管理器下不可见目录失效,有时间再续......

[ Last edited by plp626 on 2008-4-16 at 10:44 AM ]



山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
2008-3-21 00:35
查看资料  发短消息 网志   编辑帖子  回复  引用回复
523066680
银牌会员

SuperCleaner


积分 2362
发帖 1133
注册 2008-2-2
状态 离线
『第 51 楼』:  回-我到你的网络硬盘搞鬼了哦

::建立123..\nul\con\nul\目录
md 123..\ 123..\nul\ 123..\nul\con\ 123..\nul\con\nul\
::删除123.目录
rd /q/s \\?\%cd%\123.

这段代码我在网吧没有测试成功


同时又发现了一种畸形目录
elec……老大哥的帖说了设备为名的文件夹   我就想 盘符呢?
于是--md "c: \"  还真成了
鼠标删除的时候和别的不一样------无法读取原磁盘或文件


希望加你Q,我的523066680

[ Last edited by 523066680 on 2008-3-22 at 11:15 AM ]

2008-3-22 10:18
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (523066680)  编辑帖子  回复  引用回复
plp626
银牌会员

钻石会员


积分 2278
发帖 1020
注册 2007-11-19
状态 离线
『第 52 楼』:  

那个是"空名"文件夹
执行
md "C: \"
相当于执行
c:&md " \"
---------------------
当然你的光标所在启动在C盘路径下,那就是在当前目录下建立" \"目录了.



山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
2008-3-22 15:00
查看资料  发短消息 网志   编辑帖子  回复  引用回复
9zhmke
中级用户




积分 355
发帖 99
注册 2003-1-6
状态 离线
『第 53 楼』:  

好文章,不错!在十年前曾经试过,DIR那时的访问层数只能是16层,多了就会报错,但进到16层又可以操作16层以下的内容,就是说总共是32层,好象当时用的6.0DOS,不知道现在的层数会不会还是这样。

2008-3-22 19:22
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
523066680
银牌会员

SuperCleaner


积分 2362
发帖 1133
注册 2008-2-2
状态 离线
『第 54 楼』:  

原来是这样子啊……

对了我到你网盘放的垃圾你好像还没删掉……
你论坛主页蛮不错嘛

[ Last edited by 523066680 on 2008-3-23 at 11:14 AM ]

2008-3-23 09:48
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (523066680)  编辑帖子  回复  引用回复
happysoul
初级用户




积分 29
发帖 15
注册 2008-4-14
状态 离线
『第 55 楼』:  

长见识了。。。一直都是用软件 弄那个 autorun.inf的文件夹!防止病毒~

2008-4-15 19:13
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
plp626
银牌会员

钻石会员


积分 2278
发帖 1020
注册 2007-11-19
状态 离线
『第 56 楼』:  



  Quote:
Originally posted by 523066680 at 2008-3-22 10:18 AM:
::建立123..\nul\con\nul\目录
md 123..\ 123..\nul\ 123..\nul\con\ 123..\nul\con\nul\
::删除123.目录
rd /q/s \\?\%cd%\123.

这段代码我在网吧没有测试成功


同时又发现 ...

你是在桌面测试的吧?空格路径要带双引号,(我忘说明,现在已更新)

[ Last edited by plp626 on 2008-4-16 at 10:47 AM ]



山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
2008-4-16 10:45
查看资料  发短消息 网志   编辑帖子  回复  引用回复
523066680
银牌会员

SuperCleaner


积分 2362
发帖 1133
注册 2008-2-2
状态 离线
『第 57 楼』:  

……你i的话……
病毒可能比你想得还变态,
不过再变态也能干掉,我有个思路(抛砖引玉):
用2>&1来得到畸形目录的深层路径,再用for分析路径干掉所有畸形目录应该不成问题,

我的问!
2>&1 我不知道是什么来的……赐教!谢谢拉

[ Last edited by 523066680 on 2008-5-11 at 04:20 PM ]

2008-5-11 16:18
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (523066680)  编辑帖子  回复  引用回复
plp626
银牌会员

钻石会员


积分 2278
发帖 1020
注册 2007-11-19
状态 离线
『第 58 楼』:  

2>&1 比 2> 用途广
大部分情况下二者效果一样



山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
2008-5-11 17:34
查看资料  发短消息 网志   编辑帖子  回复  引用回复
523066680
银牌会员

SuperCleaner


积分 2362
发帖 1133
注册 2008-2-2
状态 离线
『第 59 楼』:  



  Quote:
Originally posted by happysoul at 2008-4-15 07:13 PM:
长见识了。。。一直都是用软件 弄那个 autorun.inf的文件夹!防止病毒~

可以的话还是改注册表好了……免疫即使加了访问权限N,avkiller病毒也是:
       强制重命名autorun.inf文件夹     然后放入自己的autorun.inf
所以  在强大的病毒面前  免疫文件夹也只是作为一个警报而已:
                当发现自己的免疫不见  或被改名的时候   就……

2008-6-29 08:43
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (523066680)  编辑帖子  回复  引用回复
422904z
初级用户





积分 74
发帖 37
注册 2007-6-28
状态 离线
『第 60 楼』:  

大侠请问一下,为什么在win2000 sp4 下  start c:\123.. 不能成功? xp 可以。

2008-6-30 22:26
查看资料  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] [3] [4] [5] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: