Retomar o script em lote após a reinicialização

2

Eu quero escrever um script único (um duplo klick) que execute automaticamente um conjunto predefinido de comandos, mas com algumas reinicializações controladas entre para evitar interdependências. Como conseguir isso?

Exemplo:

command 1
reboot
command 2
reboot
command 3
reboot
    
por Clacers 01.06.2017 / 14:48

3 respostas

2

Este script é uma solução muito boa! Eu tentei e posso confirmar que funciona!

No entanto, eu recomendo alterar %~n0 e %~dpnx0 para "%~n0" e "%~dpnx0" para evitar erros de sintaxe do 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
)
    
por 31.07.2017 / 10:30
4

Uma maneira seria criar uma chave de registro HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce\ apontando para o script a ser executado na inicialização. O cenário seria:

  • script01.bat faz seu trabalho e grava HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ RunOnce \ com o valor "path to script02.bat"

  • script02.bat faz seu trabalho e grava HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ RunOnce \ com o valor "path to script03.bat" e por tanto tempo.

por 01.06.2017 / 15:35
0

Veja o BoxStarter. link

Isso deve te dar o que você precisa para reiniciar e continuar.

    
por 07.06.2017 / 04:49