web-dev-qa-db-ja.com

再起動後にバッチスクリプトを再開します

singleスクリプト(1つのダブルクリック)を作成します。このスクリプトは、事前定義されたコマンドセットを自動的に実行しますが、相互依存を防ぐために、間にいくつかの制御された再起動を行います。それを達成する方法は?

例:

command 1
reboot
command 2
reboot
command 3
reboot
2
Clacers

これ script は非常に良い解決策です!試してみましたが、動作を確認できました!

ただし、Regedit構文エラーを防ぐために、%~n0および%~dpnx0"%~n0"および"%~dpnx0"に変更することをお勧めします。

@echo off
call :Resume
goto %current%
goto :eof

:one
::Add script to Run key
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Run /v %~n0 /d %~dpnx0 /f
echo two >%~dp0current.txt
echo -- Section one --
pause
shutdown -r -t 0
goto :eof

:two
echo three >%~dp0current.txt
echo -- Section two --
pause
shutdown -r -t 0
goto :eof

:three
::Remove script from Run key
reg delete HKCU\Software\Microsoft\Windows\CurrentVersion\Run /v %~n0 /f
del %~dp0current.txt
echo -- Section three --
pause
goto :eof

:resume
if exist %~dp0current.txt (
    set /p current=<%~dp0current.txt
) else (
    set current=one
)
2
Clacers

1つの方法は、レジストリキーを作成することですHKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce\起動時に実行するスクリプトをポイントする。シナリオは次のようになります。

  • script01.batは彼の仕事をし、HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce \に値「pathtoscript02.bat」を書き込みます。

  • script02.batは彼の仕事をし、HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce \を値 "path toscript03.bat"などで書き込みます。

4
duDE

BoxStarterを見てください。 http://boxstarter.org

これにより、再起動して続行するために必要なものが得られます。

0
ferventcoder