動かざることバグの如し

近づきたいよ 君の理想に

Windowsのサービスを一括バックアップできるバッチファイル作った

以下をコピペして適当なところにbatファイルとして作成
右クリックから「管理者として実行」として実行
あとは同一ディレクトリに「services.bat」が作成されるので、元に戻したい場合はそのbatを同様に「管理者として実行」として実行すればおk。
Win7で動作確認したけど多分XP~8全般で動くはず。

@echo off
title Windows サービスバックアップツール
echo サービスのバックアップを開始します
pause
echo.
echo.
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=services.bat
sc query type= service state= all | findstr /r /C:"SERVICE_NAME:" > tmpsrv.txt

echo @echo バックアップ日時:%DATE% %TIME%>"services.bat"
echo @pause>>"services.bat"
for /f "tokens=2 delims=:" %%j in (tmpsrv.txt) do @( sc qc %%j |findstr  START_TYPE >tmpstype.txt &&  for /f "tokens=4 delims=:_ " %%s in ( tmpstype.txt) do @echo sc config  %%j start= %%s>>"services.bat")
echo @echo リカバリが完了しました。再起動して下さい>>"services.bat"
del tmpsrv.txt
del tmpstype.txt
echo バックアップが完了しました。
echo リカバリする際は同一フォルダのservices.batを実行してください
pause

2013年9月3日追記
改良した
@echo off

title Windows サービスバックアップツール
echo サービスのバックアップを開始します
pause
echo.
echo.
cd /d %~dp0
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=services.bat
sc query type= service state= all | findstr /r /C:"SERVICE_NAME:" > tmpsrv.txt

echo @echo off>"services.bat"
echo echo バックアップ日時:%DATE% %TIME%>>"services.bat"
echo pause>>"services.bat"
for /f "tokens=2 delims=:" %%j in (tmpsrv.txt) do @( sc qc %%j |findstr  START_TYPE >tmpstype.txt &&  for /f "tokens=4 delims=:_ " %%s in ( tmpstype.txt) do @echo sc config  %%j start= %%s>>"services.bat")
echo echo リカバリが完了しました。再起動して下さい>>"services.bat"
echo pause>>"services.bat"
del tmpsrv.txt
del tmpstype.txt
echo バックアップが完了しました。
echo リカバリする際は同一フォルダのservices.batを実行してください
pause