无需安装IDE,不依赖第三方工具——仅靠Windows自带记事本,即可编写弹窗轰炸、蓝屏模拟、自动打字、键盘锁死等经典恶搞脚本。本页面系统梳理Batch/VBS/HTA三类脚本开发全流程,覆盖从语法原理到防误伤策略的完整知识链,适合零基础入门与进阶实战。
许多初学者误以为“记事本编程”是低级操作——实则不然。Windows系统内置的脚本宿主(Windows Script Host,简称WSH)为记事本脚本提供了完整执行环境。当您保存为.bat、.vbs或.hta后缀时,系统即调用对应解析器:cmd.exe处理批处理脚本,wscript.exe执行VBS脚本,而HTA则通过IE内核渲染为独立应用程序。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Script Host\Settings,检查Enabled键值为1Set-ExecutionPolicy RemoteSigned所有脚本均需用户主动执行(双击/命令行调用),不会自动传播。但若通过U盘自动运行(autorun.inf)或伪装成系统文件分发,则构成安全隐患。请务必在测试虚拟机中验证脚本行为,避免误伤真实系统。
| 命令 | 功能说明 | 典型用例 |
|---|---|---|
@echo off | 关闭命令回显 | 提升脚本执行流畅度 |
title 弹窗 | 设置窗口标题 | title 您的电脑已感染 |
echo 文本 | 输出文本/变量 | echo %username% 正在输入... |
goto 标签 | 跳转执行位置 | goto :loop 实现循环 |
start 程序 | 启动新进程 | start notepad.exe |
timeout /t 秒数 | 延迟执行 | timeout /t 3 /nobreak |
WScript.Shell:执行系统命令、读写注册表、创建快捷方式WScript.Network:获取计算机名、用户名、域名信息Scripting.FileSystemObject:文件系统操作(创建/复制/删除文件)InternetExplorer.Application:控制IE浏览器行为(需谨慎使用)@echo off
title 💥 弹窗风暴
color 0e
:loop
echo 正在启动系统诊断...
echo.
msg * 您的电脑已被感染!
msg * 立即备份重要数据!
msg * 正在清除系统文件...
msg * 倒计时:3秒后关机
msg * 您已无权限操作
set /a n+=1
if %n%==100 goto end
goto loop
:end
msg * 整蛊结束!(已循环100次)
pause本脚本通过msg命令向当前用户会话发送弹窗,使用goto实现循环。注意:msg命令在部分Win10/11精简版中可能被禁用,可改用mshta vbscript:msgbox("文本")绕过限制。
@echo off
echo 正在执行系统优化...
reg add "HKCU\Control Panel\Desktop" /v ScreenSaveActive /t REG_SZ /d 1 /f
reg add "HKCU\Control Panel\Desktop" /v ScreenSaverIsSecure /t REG_SZ /d 1 /f
reg add "HKCU\Control Panel\Desktop" /v ScreenSaveTimeOut /t REG_SZ /d 600 /f
echo 已启用屏保安全策略(10分钟自动锁定)
echo 请按任意键恢复原设置...
pause >nul
reg add "HKCU\Control Panel\Desktop" /v ScreenSaveActive /t REG_SZ /d 0 /f
echo 屏保策略已解除该脚本修改注册表项ScreenSaveTimeOut为600秒(10分钟),触发屏保自动激活。若搭配shutdown /s /t 0可实现“屏保启动后强制关机”的整蛊效果。
注册表修改需谨慎!建议在脚本开头添加reg export "HKCU\Control Panel\Desktop" "%temp%\backup.reg" /y自动备份,便于一键还原。
Set WshShell = WScript.CreateObject("WScript.Shell")
Do
WshShell.SendKeys "{CAPSLOCK}"
WshShell.SendKeys "{NUMLOCK}"
WshShell.SendKeys "{SCROLLLOCK}"
WScript.Sleep 200
Loop此脚本通过SendKeys模拟按下CapsLockNumLockScrollLock三个指示灯键,导致键盘指示灯疯狂闪烁,同时因系统忙于处理按键事件而响应迟滞,形成“键盘锁死”假象。
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "notepad"
WScript.Sleep 1000
For i = 1 To 100
WshShell.SendKeys "错误代码 0x8000FFFF:系统组件损坏!"
WshShell.SendKeys "{ENTER}"
WScript.Sleep 300
Next脚本启动记事本后模拟输入预设错误信息,配合WScript.Sleep控制输入速度。若将SendKeys内容替换为^s(Ctrl+S)+%{F4}(Alt+F4),可实现“自动保存并关闭窗口”的连贯整蛊。
<html>
<head>
<title>系统安全警告</title>
<hta:application id="oApp"
border="none"
windowState="maximize"
showInTaskbar="no"
singleInstance="yes"/>
<style>
body{background:red;color:white;font-family:Arial;font-size:24pt;text-align:center}
.button{background:white;color:red;border:2px solid black;padding:10px 30px;font-size:20pt}
</style>
</head>
<body>
<h1>⚠️ 系统检测到严重威胁!</h1>
<p>病毒ID:TROJAN.WIN32.GAGA</p>
<p>建议立即执行以下操作:</p>
<input type="button" class="button" value="立即修复(需管理员权限)" onclick="window.close()">
<script>
setInterval(function(){document.body.style.backgroundColor = Math.random() > 0.5 ? 'red' : 'blue'}, 500);
</script>
</body>
</html>HTA应用通过hta:application标签实现无边框全屏窗口,配合JavaScript动态改变背景色增强视觉冲击。点击按钮触发window.close()关闭窗口,形成“修复即退出”的整蛊闭环。
<script>
var x = 0, y = 0;
document.onmousemove = function(e) {
x = e.clientX; y = e.clientY;
if (x > screen.width * 0.8 || y > screen.height * 0.8) {
window.moveTo(0, 0);
window.resizeTo(screen.width, screen.height);
}
};
</script>此脚本监听鼠标移动事件,当指针进入屏幕右下角区域(占屏80%)时强制窗口置顶并拉伸至全屏,干扰用户正常操作。HTA的独立窗口特性使其不受浏览器同源策略限制,可实现更激进的交互控制。
@echo off
title Windows Update
echo 正在检查更新...
timeout /t 3 >nul
echo 下载更新包...
timeout /t 5 >nul
echo 安装更新...
timeout /t 10 >nul
shutdown /s /t 60
msg * 更新失败!正在回滚...
timeout /t 2 >nul
shutdown /a该脚本模拟Windows Update过程,通过timeout制造“等待”假象,最后执行shutdown /s /t 60倒计时关机,并立即用shutdown /a中止——造成“刚关机又复活”的戏剧性效果。
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.RegWrite "HKCU\Control Panel\Desktop\WaitToKillServiceTimeout", "5000", "REG_SZ"
WshShell.Run "cmd /c reg add HKLM\SYSTEM\CurrentControlSet\Control\CrashControl /v AutoReboot /t REG_DWORD /d 0 /f", 0, True
msgbox "CRITICAL_PROCESS_DIED", 16, "SYSTEM ERROR"
WshShell.Run "cmd /c reg add HKLM\SYSTEM\CurrentControlSet\Control\CrashControl /v AutoReboot /t REG_DWORD /d 1 /f", 0, True
WshShell.RegDelete "HKCU\Control Panel\Desktop\WaitToKillServiceTimeout"通过修改注册表项AutoReboot禁用蓝屏自动重启,配合msgbox模拟蓝屏错误代码,制造“假死”效果。实际系统状态完全正常,仅视觉层面呈现蓝屏。
Set objOutlook = CreateObject("Outlook.Application")
Set objMail = objOutlook.CreateItem(0)
objMail.To = "victim@example.com"
objMail.Subject = "紧急:系统安全警告"
objMail.Body = "您的电脑已被感染,请立即执行以下操作:..." & vbCrLf & vbCrLf & "附:系统日志文件"
objMail.Send
msgbox "邮件已发送至管理员邮箱", 64, "通知"此脚本利用Outlook对象模型发送邮件,若目标邮箱配置了自动转发规则,可实现“整蛊邮件”级联传播。注意:需用户授权Outlook访问权限,部分企业环境会拦截此类脚本。
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System" /v DisableTaskMgr /t REG_DWORD /d 1 /f
msg * 任务管理器已被系统管理员禁用!
pause
reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System" /v DisableTaskMgr /f通过注册表键DisableTaskMgr禁用任务管理器(Win+Ctrl+Esc同样无效),配合弹窗警告制造“系统失控”假象。退出脚本后自动还原设置,无残留风险。
Set WshShell = WScript.CreateObject("WScript.Shell")
Do
WshShell.Run "cmd /c start """" /max ""C:\Windows\Media\Chord.wav""", 0
WScript.Sleep 2000
Loop脚本循环播放系统提示音Chord.wav,通过cmd /c start指定最大化窗口隐藏控制台。若替换为Beep(800,500)(VBS内置蜂鸣)可避免依赖外部音频文件。
.bat、.vbs或.htaWScript.Echo或WScript.StdOut.WriteLine输出调试信息mshta vbscript:execute("代码")绕过部分杀软检测set /p confirm=确定执行?[Y/N]if %n% gtr 10 exitif hour(time) > 22 exit(22点后自动退出)这是正常现象!高频率循环(如SendKeys、msg)会占用CPU资源。解决方案:WScript.Sleep 1000(每秒执行一次)可显著降低负载。
reg delete命令还原键值On Error Resume Next捕获异常后删除临时文件wmic shadowcopy create /volume="C:")Windows NT 3.1发布,引入批处理脚本(.bat),首次支持if、for等条件循环结构
Windows 95 OSR2内置Windows Script Host 1.0,VBS脚本成为系统管理新宠
HTA(HTML Application)技术出现,允许将网页嵌入独立窗口,催生“网页整人脚本”热潮
网友“ScriptKid”发布《记事本编程100例》,将Batch脚本整蛊技术推向大众视野
Win8系统禁用部分msg命令,催生mshta vbscript:msgbox等替代方案
GitHub出现“NotepadPrank”开源项目,整合Batch/VBS/HTA模板库,支持一键生成恶搞脚本