我想写一篇单身的脚本(双击)会自动执行一组预定义的命令,但其间会进行一些受控的重启以防止相互依赖。如何实现这一点?
例子:
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
抱歉回答迟了。不能通过计划任务来实现吗?比如创建一个计划任务,在重启后运行一次,并在您想要恢复它的地方启动脚本?