4

大多数新手计算机用户在遇到问题并不得不将计算机重新启动到安全模式时都会感到困惑,那么您如何编写脚本使其自动运行呢?

4

2 回答 2

4

这是一个批处理脚本,它将重新启动 Windows XP、Vista 或 Windows 7 计算机进入安全模式。

Echo Off

REM Check Windows Version
ver | findstr /i "5\.0\." > nul
IF %ERRORLEVEL% EQU 0 goto ver_nt5x
ver | findstr /i "5\.1\." > nul
IF %ERRORLEVEL% EQU 0 goto ver_nt5x
ver | findstr /i "5\.2\." > nul
IF %ERRORLEVEL% EQU 0 goto ver_nt5x
ver | findstr /i "6\.0\." > nul
IF %ERRORLEVEL% EQU 0 goto ver_nt6x
ver | findstr /i "6\.1\." > nul
IF %ERRORLEVEL% EQU 0 goto ver_nt6x
goto warn_and_exit

:ver_nt5x
:Run Windows 2000/XP specific commands here
bootcfg /raw /a /safeboot:network /id 1
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce /v "*UndoSB" /t REG_SZ /d "bootcfg /raw /fastdetect /id 1"
SHUTDOWN -r -f -t 07
goto end

:ver_nt6x
:Run Windows Vista/7 specific commands here
bcdedit /set {current} safeboot network
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce /v "*UndoSB" /t REG_SZ /d "bcdedit /deletevalue {current} safeboot"
SHUTDOWN -r -f -t 07
goto end

Echo On

:warn_and_exit
echo Machine OS cannot be determined.

:end 

该脚本最初由 ChunkDog 发布于:https ://forum.ultravnc.net/viewtopic.php?f=50&t=29663

我已经对其进行了修改,并添加了一个 vbscript,询问用户是否要重新启动到安全模式,并根据用户的输入调用批处理文件。

Dim oShell, returnCode
Set objShell = CreateObject("Shell.Application")
Set oShell = WScript.CreateObject("WScript.Shell")

returnCode = oShell.Popup("Do you want to restart your computer in Safe Mode", 0, "Restart In Safe Mode", 4 + 48 + 256)

Select Case returnCode
case 6, -1
    objShell.ShellExecute "tryout.bat", "", "", "runas", 0
    case 7
    oShell.popup "Operation Canceled", 0, "Restart In Safe Mode", 0 + 64 + 0
End Select

这尚未在 Windows 8 上进行测试。

于 2012-12-20T16:00:06.590 回答
0

以管理员身份打开 cmd,然后使用这些参数“bcdedit /set {current} safeboot network”运行 bsdedit

于 2015-06-24T20:57:17.690 回答