中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-21 11:36
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [未结]带点畸形目录 批量 非空判断访问删除 查看 14,695 回复 67
31 发表于 2008-03-09 10:44 ·  中国 广东 揭阳 电信
银牌会员
★★★★
SuperCleaner
积分 2,362
发帖 1,133
注册 2008-02-02 21:36
18年会员
UID 110072
性别 男
状态 离线
那我做个炸药 挑战一下 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 ]
32 发表于 2008-03-09 11:42 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
cacls设置权限和带点还是有区别。

你这里不是提供了delete?
33 发表于 2008-03-09 12:50 ·  中国 广东 揭阳 电信
银牌会员
★★★★
SuperCleaner
积分 2,362
发帖 1,133
注册 2008-02-02 21:36
18年会员
UID 110072
性别 男
状态 离线
plp626 十楼的代码我可以删除了!但是更深层的就……得改下咯

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

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

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

[ Last edited by 523066680 on 2008-3-9 at 01:11 PM ]
34 看我的,只能进入三层。 不过可以删除plp626十楼的代码 发表于 2008-03-09 12:56 ·  中国 广东 揭阳 电信
银牌会员
★★★★
SuperCleaner
积分 2,362
发帖 1,133
注册 2008-02-02 21:36
18年会员
UID 110072
性别 男
状态 离线
=============解题错误!==浏览者请跳过======



@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 ]
35 发表于 2008-03-09 13:17 ·  中国 广东 揭阳 电信
银牌会员
★★★★
SuperCleaner
积分 2,362
发帖 1,133
注册 2008-02-02 21:36
18年会员
UID 110072
性别 男
状态 离线
老实说我不是很相信谁能写出通用的代码
con\这层是正常文件夹\nul\a..\nul\con\aux\haha.x ……挑战极限……plp626可以做到通用的话
我会崇拜你的!!偶像!看看我31楼的代码呵!评价一下
其他高手也做一下拉……所谓无私奉献!最多限制--此贴XX积分的人才可进入
当然,不能高过我的积分……

[ Last edited by 523066680 on 2008-3-9 at 01:22 PM ]
36 发表于 2008-03-09 13:32 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
你们后面讨论的是删除全部文件夹还是无文件的?

你34楼的貌似全部文件夹都删除了?
37 发表于 2008-03-09 14:15 ·  中国 广东 揭阳 电信
银牌会员
★★★★
SuperCleaner
积分 2,362
发帖 1,133
注册 2008-02-02 21:36
18年会员
UID 110072
性别 男
状态 离线
唉……没看清题目……

[ Last edited by 523066680 on 2009-3-18 at 03:34 ]
38 发表于 2008-03-09 14:15 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
层数你管它干嘛不是只有dir才可以看目录的。
你直接rd看看错误信息,再rd……掉。。。
39 发表于 2008-03-09 14:22 ·  中国 广东 揭阳 电信
银牌会员
★★★★
SuperCleaner
积分 2,362
发帖 1,133
注册 2008-02-02 21:36
18年会员
UID 110072
性别 男
状态 离线
有道理……我想到--破解autorun免疫 那里去了……
这是条水贴!
40 发表于 2008-03-09 15:17 ·  中国 广东 揭阳 电信
银牌会员
★★★★
SuperCleaner
积分 2,362
发帖 1,133
注册 2008-02-02 21:36
18年会员
UID 110072
性别 男
状态 离线
似乎38楼的说法……我做不到……
41 发表于 2008-03-09 15:30 ·  中国 陕西 西安 电信
银牌会员
★★★★
钻石会员
积分 2,278
发帖 1,020
注册 2007-11-19 13:34
18年会员
UID 103127
性别 男
状态 离线
25楼已经说了
复制句柄!
山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
42 发表于 2008-03-09 15:47 ·  中国 广东 揭阳 电信
银牌会员
★★★★
SuperCleaner
积分 2,362
发帖 1,133
注册 2008-02-02 21:36
18年会员
UID 110072
性别 男
状态 离线
病毒可能比你想得还变态,
不过再变态也能干掉,我有个思路(抛砖引玉):
用2>&1来得到畸形目录的深层路径,再用for分析路径干掉所有畸形目录应该不成问题,

2>&1 我不知道是什么来的……赐教!谢谢拉
43 发表于 2008-03-09 15:51 ·  中国 陕西 西安 电信
银牌会员
★★★★
钻石会员
积分 2,278
发帖 1,020
注册 2007-11-19 13:34
18年会员
UID 103127
性别 男
状态 离线
正在测试,只是bug较多
山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
44 发表于 2008-03-09 16:17 ·  中国 陕西 西安 电信
银牌会员
★★★★
钻石会员
积分 2,278
发帖 1,020
注册 2007-11-19 13:34
18年会员
UID 103127
性别 男
状态 离线
正在精简代码,稍等....
山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
45 发表于 2008-03-09 16:22 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
删除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文件夹拖上来就删除了。
论坛跳转: