如何运行指定VBScript脚本时不显示权限拒绝等错误信息?
解决VBScript权限拒绝错误的静默处理问题
要让你的脚本在遇到权限拒绝时不弹出错误提示,我们可以从VBScript错误捕获和命令行错误重定向两个方面入手,具体修改如下:
修改后的完整脚本
On Error Resume Next ' 开启全局错误捕获,遇到错误不会停止执行也不弹窗 Dim oShell : Set oShell = CreateObject("WScript.Shell") Dim fso : Set fso = CreateObject("Scripting.FileSystemObject") ' 运行taskkill时,把命令行的标准输出和错误输出都重定向到nul,抑制命令行错误提示 oShell.Run "taskkill /F /IM mysqld.exe >nul 2>&1", , True ' 删除文件前先检查文件是否存在,同时借助On Error Resume Next避免删除失败弹窗 Dim file : file = "C:\xampp\mysql\bin\mysqld.exe" If fso.FileExists(file) Then fso.DeleteFile file End If ' 释放对象 Set oShell = Nothing Set fso = Nothing
关键修改点说明
On Error Resume Next:这是VBScript里的全局错误开关,开启后脚本遇到错误会跳过错误代码继续执行,并且不会默认弹出系统错误提示框。- 命令行重定向
>nul 2>&1:taskkill命令本身的权限错误会输出到命令行,我们把标准输出(>)和错误输出(2>&1)都导向nul(空设备),这样命令行的错误信息就不会显示出来。 - 文件存在检查:先判断文件是否存在再执行删除,避免因为文件不存在额外触发错误,让脚本更严谨。
这样修改后,不管是终止进程还是删除文件时遇到权限拒绝,脚本都不会弹出任何错误提示,会默默继续执行后续逻辑。
内容的提问来源于stack exchange,提问作者datarocker
相关产品推荐
相关产品推荐

