CODE: [Copy to clipboard]
@ECHO OFF
REM 本程序用于设置远程启动的注册表和其他项目,需要则安全模式下使用.
REM 1.判断系统是否是安全模式,这里采用人工判断
>%Temp%\msg.vbs ECHO intAnswer = MsgBox("本设置只能在安全模式下进行,要继续吗?" + vbCrLf + "安全模式下替换了相关文件后需要重新启动系统在正常模式下添加DLC和NETBIOS协议!", vbExclamation+vbYesNo, "小不点温馨提示!")
>>%Temp%\msg.vbs ECHO IF intAnswer = vbYes Then
>>%Temp%\msg.vbs ECHO Wscript.Echo "GO"
>>%Temp%\msg.vbs ECHO ELSE
>>%Temp%\msg.vbs ECHO Wscript.Echo "END"
>>%Temp%\msg.vbs ECHO END IF
FOR /f "delims=" %%i in ('"cscript //nologo %Temp%\msg.vbs"') do (GOTO %%i)
:GO
REM 2.复制协议文件和替换相关文件
XCOPY /S/C/H/R/Y backup\files\*.* %WINDIR%\ & CLS
REM 3.安装协议,这里提示手动安装
REM 4.设置注册表远程启动项目:其实可以直接把Directory改为字符串导入也可以,这里保留REG_EXPAND_SZ类型
REM 还需要注意,BINSUB工具只能修改ANSII编码格式,所以直接导出的注册表无法直接替换,需要使用TYPE命令转化为ANSII码(原创)
SET CPATH=%CD%
CD backup\reg\
ECHO SET RPATH=%CPATH%>RPATH.BAT
binsub RPATH.BAT \ \\ /I & CLS
CALL RPATH.BAT
TYPE CR.BAK >CR.SVR
binsub CR.SVR C:\\Rpl\\ %RPATH%\\ /I & CLS
REGEDIT /S CR.SVR & CLS
IF EXIST RPATH.BAT DEL RPATH.BAT /Q/F
IF EXIST *.ubk DEL *.ubk /Q/F
IF EXIST CR.SVR DEL CR.SVR /Q/F
CHCP 936 & CLS
SET RB1=HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\RemoteBoot\Parameters
REG ADD "%RB1%" /V Directory /t REG_EXPAND_SZ /d "%CPATH%" /f & CLS
SET RB2=HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\RemoteBoot\Parameters
REG ADD "%RB2%" /V Directory /t REG_EXPAND_SZ /d "%CPATH%" /f & CLS
SET RB3=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RemoteBoot\Parameters
REG ADD "%RB3%" /V Directory /t REG_EXPAND_SZ /d "%CPATH%" /f & CLS
CD..\..
DIR
GOTO END
:END
IF EXIST %TEMP%\MSB.VBS DEL %TEMP%\MSB.VBS /F/Q
@ECHO ON
EXIT
目前已经解决了是否是安全模式的判断,采用9楼everest79的注册表方法和15楼NaturalJ0兄的工具都可以,非常感谢两位的帮助,现在主要的问题是如何CMD下或使用DOS工具安装网络协议。