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


2

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

例:

command 1
reboot
command 2
reboot
command 3
reboot

回答:


4

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

  • script01.batは彼の仕事をして、値 "path to script02.bat"を使ってHKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ RunOnce \を書きます

  • script02.batは仕事をし、HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ RunOnce \に「path03 to script03.bat」という値を付けて書き込みます。


1つのファイル内でこれを達成することは可能でしょうか?
Clacers

この方法ではない、おそらくもう一つの可能​​性があります。
duDE

2

この スクリプト 非常に良い解決策です。試してみて、動作確認できます。

しかし私は変えることを勧めます %~n0 そして %~dpnx0"%~n0" そして "%~dpnx0" Regedit構文エラーを防ぐために。

@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
)

0

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

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


それがユーザーインターフェイスで実際にそれほど複雑であることを確かではない - しかし上記のスクリプトがはたらくならそれを使用しなさい。問題があり、保留中の再起動チェックなどでもっと回復力のあるものが必要になった場合は、Boxstarterを使用した場合よりもずっと複雑なものを書くことになります。心に留めておくべき何か。 HTH
ferventcoder
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.