dos 批处理解释

2024年11月18日 16:48
有3个网友回答
网友(1):

@echo off
cls :::清屏
echo 按 S 键删除Autorun.inf并进行免疫
echo.
echo 按 D 键删除免疫程序
echo.
echo 按其他任意键退出
echo.
echo.
SET Choice=
SET /P Choice= 请选择要进行的操作:
IF /I '%Choice:~0,1%'=='s' GOTO setup ::::扩充一个字符。比如你输入的是SS,他只会扩充一个S,不分大小写,GOTO是跳转。
IF /I '%Choice:~0,1%'=='d' GOTO Delset
IF /I '%Choice:~0,1%'=='q' GOTO Exit
exit
:Setup
taskkill /im explorer.exe /f
for %%a in (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: ( ::::结束名为explorer.exe的程序。这个for是为下条语句提供驱动器,这个if的意思是,如果存在这个驱动器,就将执行下条语句。下面如同。
rd %%a:\autorun.inf /s /q ::::删除该驱动器下的这个文件夹,包含文件。
del %%a:\autorun.inf /f /q ::::强行删除文件。
mkdir %%a:\autorun.inf ::::这个是创建文件夹,进行免疫。
mkdir %%a:\autorun.inf\"病毒免疫勿删除../" ::::这种文件夹是无法删除的
attrib +h +r +s %%a:\autorun.inf ::::对文件进行加上属性。比如隐藏,存档,只读。

)
)
start explorer.exe
for %%a in (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:\nul ( ::::运行explorer.exe进程。
>1.vbs echo msgbox^ "%%a:免疫成功",64,"提示:"
1.vbs ::::一个提示 ,会自动创建一个名为1.vbs的文件
)
)
del 1.vbs
echo.
echo.
echo 按任意键退出...
pause>nul
exit

:delset
For %%a In (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: (
rd %%a:\autorun.inf /s /q

)
)
echo.
echo.
echo 操作完毕,按任意键退出...
pause>nul
exit
我单独解释下好了。
start explorer.exe
for %%a in (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:\nul (
>1.vbs echo msgbox^ "%%a:免疫成功",64,"提示:"
1.vbs
) >是一个重定指向符号。这个可以看做是两句,他只不过是把两句连到一起写了。
if exist %%a:\nul (
>1.vbs
echo msgbox^ "%%a:免疫成功",64,"提示:"
1.vbs
) 这句应该是这样看。

网友(2):

可以改成这样吗?
echo msgbox^ "%%a:免疫成功",64,"提示:"> 1.vbs

上面的哪个人说是两句
分下来意思不就变了吗?
>1.vbs //重定向到1.VBS
echo msgbox^ "%%a:免疫成功",64,"提示: //显示msgbox^ "%%a:免疫成功",64,"提示:
恐怕意思就变了
我也有疑问 请回答仔细点

网友(3):

cls 清屏
echo 按 S 键删除Autorun.inf并进行免疫
echo.
echo 按 D 键删除免疫程序
echo.
echo 按其他任意键退出
echo.
echo.
这些都是输出的文字没有意义
SET /P Choice= 请选择要进行的操作:
IF /I '%Choice:~0,1%'=='s' GOTO setup
IF /I '%Choice:~0,1%'=='d' GOTO Delset
IF /I '%Choice:~0,1%'=='q' GOTO Exit
exit
这些文件自动判别你的输入信息然后用if命令来做出相应的反应
Setup
taskkill /im explorer.exe /f
for %%a in (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: (
rd %%a:\autorun.inf /s /q
del %%a:\autorun.inf /f /q
mkdir %%a:\autorun.inf
mkdir %%a:\autorun.inf\"病毒免疫勿删除../"
attrib +h +r +s %%a:\autorun.inf

)
)
start explorer.exe
for %%a in (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:\nul (
>1.vbs echo msgbox^ "%%a:免疫成功",64,"提示:"
1.vbs
)
)
del 1.vbs
echo.
echo.
echo 按任意键退出...
pause>nul
exit
这些是在你的每个盘符里创建一个autorun.inf
文件
delset
For %%a In (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: (
rd %%a:\autorun.inf /s /q

)
)
echo.
echo.
echo 操作完毕,按任意键退出...
pause>nul
这一段是删除你的autorun.inf文件

如果不详细在接着找我!!!!!!!!!!!