Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 以安全模式重新启动计算机-优化代码_Batch File_Vbscript_Restart_Safe Mode - Fatal编程技术网

Batch file 以安全模式重新启动计算机-优化代码

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

我有一个脚本,可以在安全模式下重新启动Windows计算机

此vbscript调用BAT文件,该文件提示UAC提升,并以安全模式重新启动计算机

关于如何优化此脚本有什么建议吗? 这能在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
更新:我按照建议更新了脚本,并添加了一个
操作取消
弹出窗口,如果用户选择

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)