Board logo

标题: 批处理怎样记录并恢复服务的启动状态? [打印本页]

作者: antony521     时间: 2010-8-12 23:19    标题: 批处理怎样记录并恢复服务的启动状态?

从网上看到的一段备份服务状态的程序,今天有空改了改,主要是不想再生成临时文件,谁知不能正常运行了,就停着不动,任意键退出,看不出毛病请高手们看看。
@echo off
rem 这个bat程序,用于记录并恢复服务的启动状态
rem 该程序的优点是 生成的记录文件是一个批处理文件,直接运行就可以恢复系统服务的启动状态。
rem  get current date and time
for /f "tokens=1,2,3,4 delims=-/. " %%j in ('Date /T') do set FILENAME=srv_%%j_%%k_%%l_%%m
for /f "tokens=1,2 delims=: " %%j in ('TIME /T') do set FILENAME=%FILENAME%_%%j_%%k.bat
rem get all service name
echo Save Service Start State In %FILENAME%
rem save service start state into batch file
(echo @echo off
echo echo Restore The Service Start State Saved At %TIME% %DATE%
echo pause^>nul )>"%FILENAME%"
for /f "tokens=2 delims=:" %%j in ('sc query type= service state= all ^| findstr /r /c:"SERVICE_NAME:"') do (
for /f "tokens=4 delims=:_ " %%s in ('sc qc %%j ^|findstr START_TYPE') do (
  echo sc config %%j start= %%s >>"%FILENAME%"
)
)
echo pause^>nul >>"%FILENAME%"