中国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] »
作者:
标题: [未结]带点畸形目录 批量 非空判断访问删除 上一主题 | 下一主题
523066680
银牌会员

SuperCleaner


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

那我做个炸药 挑战一下 plp626哈……如果可以一次性搞定……你一定要教我方法!
在网吧上网,做不出什么复杂的东西了……失败……不过我拿出以前的autorun多重免疫……试试看
::应该。。。。。不会造成不良结果。适于ntfs格式的磁盘
@echo off
set /p n=在这里输入建立不可删文件个数,不判断。最好是1^<n^<50___:
for %%a in (a b c d e f g h i j k l m n o p q r s t u v w x y z) do (
if exist %%a: (
%%a: &cd\
for /f "tokens=*" %%b in ('dir /a-d /b autorun.inf') do (del /a /f /q %%b)
::如果这时候还存在autorun.inf 那应该就是删不掉的文件夹了
if exist autorun.inf goto :fail
md autorun.inf &cd autorun.inf
for /l %%d in (1,1,%n%) do (md %%d%%d &md %%d%%d\con\)
cd..
attrib autorun.inf +a +s +h +r
echo y |cacls autorun.inf /p everyone:n
))

:2
cls
echo 是否取消?
set /p in=(y/n)
if /i %in%==y goto delete
if /i %in%==n (exit) else (goto 2)

:delete
set /p m=在这里输入数字,不判断。最好是1^<n^<50___:
for %%c in (a b c d e f g h i j k l m n o p q r s t u v w x y z) do (
if exist %%c:\autorun.inf (
%%c: &cd\
echo y |cacls autorun.inf /p everyone:f
cd autorun.inf
for /l %%e in (1,1,%m%) do (rd %%e%%e\con\)
cd..
rd autorun.inf /s /q
))
exit

:fail
echo 可能已经建立了,或者遇见其他问题,按任意键到删除项。
pause>nul
goto :2

[ Last edited by 523066680 on 2008-3-9 at 11:09 AM ]

2008-3-9 10:44
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (523066680)  编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 32 楼』:  

cacls设置权限和带点还是有区别。

你这里不是提供了delete?

2008-3-9 11:42
查看资料  发短消息 网志   编辑帖子  回复  引用回复
523066680
银牌会员

SuperCleaner


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

plp626 十楼的代码我可以删除了!但是更深层的就……得改下咯

开始的时候 没有加上 “ |find /v ”字节“  结果cd.. 到了更上层的文件夹
导致我的其他文件被删除了……惨&现在没事了

因为是 tokens=4 所以 ,如果不是  长名字的文件夹
是不会被误删除的

应该说是判断方面的缺陷,我知识有限,下面的代码是在网吧做的
希望有人愿意优化下……小心哈,很容易误删外面文件夹的……

[ Last edited by 523066680 on 2008-3-9 at 01:11 PM ]

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

SuperCleaner


积分 2362
发帖 1133
注册 2008-2-2
状态 离线
『第 34 楼』:  看我的,只能进入三层。 不过可以删除plp626十楼的代码

=============解题错误!==浏览者请跳过======



@echo off
echo.现在开始建立畸形文件夹,这里是plp626的代码
pause
@echo off
for %%a in (plp 626 cn dos 1 0 fdf d ret 就 是 lo aux com1 nul con pp 465 漂来漂 看 ai) do (
   md %%a...\ %%a...\...\
   for %%a in (con nul aux com1) do (
      md %%a...\%%b\
      copy *.bat "%%a...\%%b\"
      md %%a...\%%b\con\
)   )

cls
echo. 建立完毕
pause

::\\\\\\\\\\\\\\\\\\\\\\\\开始解除、、、、、、、、、、
::这里是我的代码,如果对付更深层的代码,就又得改下了!


@echo off
for /f "skip=7 tokens=4" %%a in ('dir /ad /x ^|find /v "字节"') do (
echo %%a
cd %%a
  for /f "tokens=*" %%b in ('dir /ad /b') do (
  echo %%~nb
    for /f "tokens=*" %%c in ('dir %%~nb\ /ad /b') do (
    echo %%~nb\%%~nc\
    rd %%~nb\%%~nc\ /s /q
    )
  rd %%~nb\ /s /q
  )
  cd..
  echo %%a
  rd %%a /s /q
)
pause


[ Last edited by 523066680 on 2008-8-21 at 07:22 AM ]

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

SuperCleaner


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

老实说我不是很相信谁能写出通用的代码
con\这层是正常文件夹\nul\a..\nul\con\aux\haha.x ……挑战极限……plp626可以做到通用的话
我会崇拜你的!!偶像!看看我31楼的代码呵!评价一下
其他高手也做一下拉……所谓无私奉献!最多限制--此贴XX积分的人才可进入
当然,不能高过我的积分……

[ Last edited by 523066680 on 2008-3-9 at 01:22 PM ]

2008-3-9 13:17
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (523066680)  编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 36 楼』:  

你们后面讨论的是删除全部文件夹还是无文件的?

你34楼的貌似全部文件夹都删除了?

2008-3-9 13:32
查看资料  发短消息 网志   编辑帖子  回复  引用回复
523066680
银牌会员

SuperCleaner


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

唉……没看清题目……

[ Last edited by 523066680 on 2009-3-18 at 03:34 ]

2008-3-9 14:15
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (523066680)  编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 38 楼』:  

层数你管它干嘛不是只有dir才可以看目录的。
你直接rd看看错误信息,再rd……掉。。。

2008-3-9 14:15
查看资料  发短消息 网志   编辑帖子  回复  引用回复
523066680
银牌会员

SuperCleaner


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

有道理……我想到--破解autorun免疫  那里去了……
这是条水贴!

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

SuperCleaner


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

似乎38楼的说法……我做不到……

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

钻石会员


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

25楼已经说了
复制句柄!



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

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

SuperCleaner


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

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

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

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

钻石会员


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

正在测试,只是bug较多



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

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

钻石会员


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

正在精简代码,稍等....



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

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





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 45 楼』:  

删除plp26 10楼的。。。
我只写个测试脚本,具体自己扩展吧。

建立TEST目录,在里面建立一个plp626的那个生成脚本。运行。
在TEST目录外写下面的脚本。

@echo off
rd /s /q %1\ 2>srd.log
for /f %%i in (srd.log) do rd /s /q %%i\
rd /s /q %1\ 2>srd.log

把TEST文件夹拖上来就删除了。

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


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



论坛跳转: