我有一个脚本,它将以安全模式重新启动Windows计算机。
此vbscript调用提示UAC提升的BAT文件,并以安全模式重新启动计算机。
有关如何优化此脚本的任何建议? 这可以在Windows 8中使用吗?
[code]Dim oShell, retCode
Set oShell = WScript.CreateObject("WScript.Shell")
Set objShell = CreateObject("Wscript.Shell")
retCode = oShell.Popup("Do you want to restart your computer in Safe Mode", 0, "Restart In SafeMode", 4 + 48)
Select Case retCode
case 6, -1
objShell.Run "elevaterestart.bat"
case 7
WScript.quit(1) 'No was chosen
End Select
更新:我按照建议更新了脚本,并在用户选择Operation Canceled
no
弹出窗口
Dim oShell, retCode, MsgBox
Set oShell = WScript.CreateObject("WScript.Shell")
Set objShell = CreateObject("Wscript.Shell")
retCode = oShell.popup("Do you want to restart your computer in Safe Mode", 0, "Restart In Safe Mode", 4 + 48 + 256)
If retCode = 6 Or retCode = -1 Then
objShell.Run "elevaterestart.bat"
Else
oShell.popup "Operation Canceled", 0, "Restart In Safe Mode", 0 + 64 + 0
End If`
答案 0 :(得分:0)
似乎不需要Set objShell行,因为你的objShell变量从未被使用过,并且对oShell来说是多余的。
当文件结束时,VBScripts将在没有wscript.quit(ExitCode)调用的情况下退出,但是如果你从其他地方调用它,那么1退出代码将允许你知道用户说他们做了不想重启(当没有错误到达文件末尾时,默认退出代码为0)。
我不会使用案例陈述 - 如果您从一系列选项中进行选择,通常只会使用样式。我更有可能将最后一部分编码为这样,但这根本不会改变功能。
If retCode = 6 Or retCode = -1 Then
objShell.Run "elevaterestart.bat"
Else
WScript.quit(1)
End If