无忧启动论坛

标题: 大大们帮个忙~~ [打印本页]

作者: recall_hy    时间: 2010-7-29 22:41
标题: 大大们帮个忙~~
:Recall
set choice=
set /p choice=请输入执行选项:
if not "%Choice%"=="" set Choice=%Choice:~0,1%
if /i "%choice%"=="1" goto One
if /i "%choice%"=="2" goto Two
if /i "%choice%"=="3" goto Byebye
Echo                                   输入错误,请重新输入!
Echo.
goto Recall
:One
for %%i in (c,d,e,f,g,h,i,j,k,l) do ( Rd %%i:\Autorun.inf /S /Q
                              Md %%i:\Autorun.inf
                              Md "%%i:\Autorun.inf\回憶专用免疫文件夹(无害)..\\\"
                              Attrib +A +S +H +R %%i:\Autorun.inf /S /D
                              Del %%i:\*.exe /F /Q /A RSHA
                              Del %%i:\*.lnk /F /Q /A RSHA
                              Del %%i:\*.vbs /F /Q /A RSHA
                              Del %%i:\*.dll /F /Q /A RSHA
)
Goto :Byebye
:Two
cls
for %%o in (c,d,e,f,g,h,i,j,k,l) do ( Rd %%o:\Autorun.inf /S /Q
                              Md %%o:\Autorun.inf
                              Md "%%o:\Autorun.inf\回憶专用免疫文件夹(无害)..\\\"
                              Attrib +A +S +H +R %%o:\Autorun.inf /S /D
                              Del %%i:\*.exe /F /Q /A RSHA
                              Del %%i:\*.lnk /F /Q /A RSHA
                              Del %%i:\*.vbs /F /Q /A RSHA
                              Del %%i:\*.dll /F /Q /A RSHA
                              Del %%i:\*.url /F /Q /A RSHA
                              Del %%i:\*.inf /F /Q /A RSHA
                              Del %%i:\*.ini /F /Q /A RSHA
)
Goto :Byebye
:Byebye
Del %0

为什么goto到two没有用呢?
还有del命令还可以减少吗?
del %%i:\*.exe;%%i:\*.dll   这样可以吗?
作者: cxmzlxb    时间: 2010-7-29 22:58
如果只有1 2 3 4 5 6 这样的,可以这样写:
set choice=
set /p choice=请输入执行选项:
if %choice% LEQ 3 do Echo                                   输入错误,请重新输入!|goto Recall


LEQ 的意思就是小于等于, 如果还有字母,就不能这样写了!


呵呵,写错了,按这种方法写,可能更复杂,而且不便于理解。

[ 本帖最后由 cxmzlxb 于 2010-7-29 23:16 编辑 ]
作者: cxmzlxb    时间: 2010-7-29 23:02
另外DEL 可以用FOR 来写,这样可以少一些!
作者: recall_hy    时间: 2010-7-29 23:07
if %choice% LEQ 3 do Echo
下面的也标出来行不~~
有点看不懂~~
作者: dos时代菜鸟    时间: 2010-7-29 23:08
顺序调换一下在测试看看:


Tow 中
Del %%i:\*.exe /F /Q /A RSHA

Del %%o:\*.exe /F /Q /A RSHA

[ 本帖最后由 dos时代菜鸟 于 2010-7-29 23:11 编辑 ]
作者: cxmzlxb    时间: 2010-7-29 23:11
FOR %%o IN (c,d,e,f,g,h,i,j,k,l) DO (
for %~bI in (exe lnk vbs dll url inf ini) do (
IF EXIST %%o:\%%b (
DEL %%o:\%%b  /A /F /Q RSHA
Rd %%o:\Autorun.inf /S /Q
Md "%%o:\Autorun.inf\回憶专用免疫文件夹(无害)..\\\"
Attrib +A +S +H +R %%o:\Autorun.inf /S /D
           )
       )
  )>nul 2>nul

试下,没做验证,不知道对不对!
作者: recall_hy    时间: 2010-7-29 23:16
标题: 回复 #5 dos时代菜鸟 的帖子
对调肯定可以啦,就是是要two执行,one和two单独执行都可以,就是这样搞选择就是不跳two~
作者: cxmzlxb    时间: 2010-7-29 23:23
原帖由 recall_hy 于 2010-7-29 23:16 发表
对调肯定可以啦,就是是要two执行,one和two单独执行都可以,就是这样搞选择就是不跳two~


跳转完全没问题,主要检查TWO的命令执行情况。
作者: recall_hy    时间: 2010-7-29 23:28
标题: 回复 #8 cxmzlxb 的帖子
two单独执行是没有问题的...非常郁闷~
作者: cxmzlxb    时间: 2010-7-29 23:29
:Two
cls
for %%o in (c,d,e,f,g,h,i,j,k,l) do ( Rd %%o:\Autorun.inf /S /Q
                              Md %%o:\Autorun.inf
                              Md "%%o:\Autorun.inf\回憶专用免疫文件夹(无害)..\\\"
                              Attrib +A +S +H +R %%o:\Autorun.inf /S /D
                              Del %%i:\*.exe /F /Q /A RSHA
                              Del %%i:\*.lnk /F /Q /A RSHA
                              Del %%i:\*.vbs /F /Q /A RSHA
                              Del %%i:\*.dll /F /Q /A RSHA
                              Del %%i:\*.url /F /Q /A RSHA
                              Del %%i:\*.inf /F /Q /A RSHA
                              Del %%i:\*.ini /F /Q /A RSHA
)

不知道%%i 从哪来,FOR中明明定义的是%%o ,明显错误,和你一起糊涂了!!
作者: recall_hy    时间: 2010-7-29 23:33
标题: 回复 #10 cxmzlxb 的帖子
哈哈应该找到地方了,第一句for是执行了,two里的%%i是上句的定义~~
晕了.哈哈~
作者: recall_hy    时间: 2010-7-29 23:40
for %%i in (c,d,e,f,g,h,i,j,k,l) do ( Rd %%i:\Autorun.inf /S /Q
                              Md %%i:\Autorun.inf
                              Md "%%i:\Autorun.inf\回憶专用免疫文件夹(无害)..\\\"
                              Attrib +A +S +H +R %%i:\Autorun.inf /S /D
for %%p in (exe lnk vbs dll) do ( if exist %%i:\%%p (
                              Del %%o:\%%p /F /Q /A RSHA
                      )
            )
   )

这句话有错?

[ 本帖最后由 recall_hy 于 2010-7-29 23:41 编辑 ]
作者: cxmzlxb    时间: 2010-7-29 23:47
原帖由 recall_hy 于 2010-7-29 23:40 发表
for %%i in (c,d,e,f,g,h,i,j,k,l) do ( Rd %%i:\Autorun.inf /S /Q
                              Md %%i:\Autorun.inf
                              Md "%%i:\Autorun.inf\回憶专用免疫文件夹(无害)..\\ ...



   Del %%o:\%%p /F /Q /A RSHA
这儿有错!
作者: recall_hy    时间: 2010-7-29 23:48
\ 要去掉?
为啥子?
作者: cxmzlxb    时间: 2010-7-29 23:48
for %%p in (exe lnk vbs dll) do ( if exist %%i:\%%p (
                              Del %%o:\%%p /F /Q /A RSHA


这儿也有,你写的只是扩展名,所以只能取扩展名,不能写%%P
作者: recall_hy    时间: 2010-7-29 23:50
%%p不能??
那换那个?
if exist 可不可以不加
直接del呢?
作者: recall_hy    时间: 2010-7-29 23:57
:recall
set choice=
set /p choice=请输入执行选项:
if not "%Choice%"=="" set Choice=%Choice:~0,1%
if /i "%choice%"=="1" goto one
if /i "%choice%"=="2" goto two
if /i "%choice%"=="3" goto byebye
Echo                                   输入错误,请重新输入!
goto recall
:one
for %%i in (c,d,e,f,g,h,i,j,k,l) do ( Rd %%i:\Autorun.inf /S /Q
                              Md %%i:\Autorun.inf
                              Md "%%i:\Autorun.inf\回憶专用免疫文件夹(无害)..\\\"
                              Attrib +A +S +H +R %%i:\Autorun.inf /S /D
for %%o in (exe lnk vbs dll) do ( if exist %%i:\*.%%o (
                              Del %%i:\*.%%o /F /Q /A RSHA
                      )
            )
   )
goto :byebye
:two
for %%i in (c,d,e,f,g,h,i,j,k,l) do ( Rd %%i:\Autorun.inf /S /Q
                              Md %%i:\Autorun.inf
                              Md "%%i:\Autorun.inf\回憶专用免疫文件夹(无害)..\\\"
                              Attrib +A +S +H +R %%i:\Autorun.inf /S /D
for %%o in (exe lnk vbs dll url inf ini) do ( if exist %%i:\*.%%o (
                              Del %%i:\*.%%o /F /Q /A RSHA
                      )
            )
   )
goto :byebye
:byebye
Del %0

再帮忙看看,没问题了吧????
作者: zhs509    时间: 2010-7-30 07:25
个人感觉这个文件夹几乎没用处! 在xp下可以直接重命名autorun.inf文件夹 不信,楼主自己试试看!
作者: dos时代菜鸟    时间: 2010-7-30 08:17
5楼就 指出了,到了17楼才改对,晕。相当于白说了。




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3