重启后恢复批处理脚本

重启后恢复批处理脚本

我想写一篇单身的脚本(双击)会自动执行一组预定义的命令,但其间会进行一些受控的重启以防止相互依赖。如何实现这一点?

例子:

command 1
reboot
command 2
reboot
command 3
reboot

答案1

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce\一种方法是通过指向要在启动时运行的脚本来创建注册表项。场景如下:

  • script01.bat 完成其工作并将值“script02.bat 的路径”写入 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce\

  • script02.bat 完成其工作并将值“script03.bat 的路径”写入 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce\ 等等。

答案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
)

答案3

看看 BoxStarter。http://boxstarter.org

这应该可以为您提供重新启动和继续所需的信息。

答案4

抱歉回答迟了。不能通过计划任务来实现吗?比如创建一个计划任务,在重启后运行一次,并在您想要恢复它的地方启动脚本?

相关内容