Batch file 以安全模式重新启动计算机-优化代码
我有一个脚本,可以在安全模式下重新启动Windows计算机 此vbscript调用BAT文件,该文件提示UAC提升,并以安全模式重新启动计算机 关于如何优化此脚本有什么建议吗? 这能在Windows 8中工作吗?Batch file 以安全模式重新启动计算机-优化代码,batch-file,vbscript,restart,safe-mode,Batch File,Vbscript,Restart,Safe Mode,我有一个脚本,可以在安全模式下重新启动Windows计算机 此vbscript调用BAT文件,该文件提示UAC提升,并以安全模式重新启动计算机 关于如何优化此脚本有什么建议吗? 这能在Windows 8中工作吗? [code]Dim oShell, retCode Set oShell = WScript.CreateObject("WScript.Shell") Set objShell = CreateObject("Wscript.Shell") retCode = oShell.Pop
[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
更新:我按照建议更新了脚本,并添加了一个操作取消
弹出窗口,如果用户选择否
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`
似乎不需要Set objShell行,因为您的objShell变量从未使用过,并且与oShell是冗余的 当到达文件结尾时,VBScripts将在没有wscript.quit(ExitCode)调用的情况下退出,但是如果您是从其他地方调用它,则1退出代码将允许您知道用户说他们不想重新启动(当到达文件结尾且无错误时,默认退出代码为0) 我不会使用case语句——通常只有在从一系列选项中进行选择时才使用样式。更可能的是,我会像这样编写最后一节,但这根本不会改变功能
If retCode = 6 Or retCode = -1 Then
objShell.Run "elevaterestart.bat"
Else
WScript.quit(1)
End If
“优化”是什么意思?当前脚本未能实现哪些功能、可靠性、可用性、可维护性或性能目标?我需要退出代码吗?或者在没有
(1)