vb脚本从入门到精通
很多人第一次接触VBScript,脚本精通是从入在需要批量改文件名或者自动填Excel表格的时候。打开记事本,脚本精通敲几行代码,从入存成.vbs,脚本精通双击就能跑。从入这种“即写即用”的脚本精通爽感,是从入Python或PowerShell都给不了的——虽然后两者更强大,但VBScript的脚本精通零依赖特性在Windows环境里几乎无敌。
先看一个最基础的从入例子:
MsgBox "你好,VBScript" 把上面这行存为hello.vbs,脚本精通双击,从入弹窗就出来了。脚本精通没有编译器,从入没有环境变量,脚本精通连代码高亮都不需要。这就是VBScript的起点——它本质上是Windows脚本宿主(WSH)能直接解释的文本。
变量声明用Dim,但你不声明也能用。这既是优点也是坑。比如:
Dim name name = "张三" MsgBox name 字符串拼接用&,不是+。用+容易在数字和字符串混用时出怪问题。我见过有人写 "1" + 2 得到3,但 "1" & 2 得到"12"。类型转换在VBScript里是隐式的,但最好自己用CStr、CInt控制。
条件判断和循环跟VB系语言一样:
If age >= 18 Then MsgBox "成年" Else MsgBox "未成年" End If For i = 1 To 10 total = total + i Next 注意:VBScript里没有 i++,也没有 +=。写 total = total + i 是常态。一开始会觉得啰嗦,习惯了反而觉得清晰。
真正让VBScript“能干活”的是它的内置对象。FileSystemObject(FSO)是使用频率最高的一个。比如遍历某个文件夹下所有.txt文件并改名:
Set fso = CreateObject("Scripting.FileSystemObject") Set folder = fso.GetFolder("C:\temp") For Each file In folder.Files If LCase(fso.GetExtensionName(file.Name)) = "txt" Then file.Name = "new_" & file.Name End If Next 这段代码在批量处理日志文件时特别实用。但要注意:VBScript没有异常处理机制(没有try-catch),一旦出错就弹窗中断。所以实际脚本里要加 On Error Resume Next,然后手动检查Err.Number。这不是优雅的做法,但能防止脚本半路挂掉。
另一个常用对象是WScript.Shell,用来运行外部程序或读写注册表:
Set shell = CreateObject("WScript.Shell") shell.Run "notepad.exe", 1, False shell.RegWrite "HKCU\Software\MyApp\Setting", "1", "REG_SZ" 注册表操作要小心,写错位置可能影响系统。我一般只建议在HKCU下折腾,别碰HKLM。
说到“精通”,其实VBScript的语法一天就能学完。真正的门槛在于:知道什么时候该用它,什么时候不该用。它适合做Windows登录脚本、简单的文件批处理、Office宏的替代方案。但如果你要解析JSON、发HTTP请求、做多线程——趁早换PowerShell或Python。VBScript连原生的JSON解析都没有,得手动字符串切割,写起来很痛苦。
还有一点:微软从Windows 11开始逐步弱化VBScript,未来可能默认禁用。所以新项目别把宝押在它身上。但维护老系统、改改遗留脚本,它依然是那个“打开记事本就能干活”的顺手工具。
最后给个实用建议:写VBScript时用 cscript //nologo script.vbs 在命令行运行,比双击弹窗调试方便得多。输出用 WScript.Echo,别老用MsgBox——弹窗点多了手酸。
(责任编辑:探索)














