Riprendi lo script batch dopo il riavvio


2

Voglio scrivere un singolo script (un doppio clic) che esegue automaticamente un set predefinito di comandi ma con alcuni riavvii controllati nel mezzo per prevenire le interdipendenze. Come realizzarlo?

Esempio:

command 1
reboot
command 2
reboot
command 3
reboot

Risposte:


4

Un modo sarebbe quello di creare una chiave di registro HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce\puntando allo script da eseguire all'avvio. Lo scenario sarebbe:

  • script01.bat fa il suo lavoro e scrive HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ RunOnce \ con valore "path to script02.bat"

  • script02.bat fa il suo lavoro e scrive HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ RunOnce \ con il valore "path to script03.bat" e così a lungo.


Sarebbe possibile raggiungere questo obiettivo in un singolo file?
Clacers

Non in questo modo, forse c'è un'altra possibilità.
duDE

2

Questo script è un'ottima soluzione! L'ho provato e posso confermare che funziona!

Tuttavia, consiglierei di cambiare %~n0e %~dpnx0di "%~n0"e "%~dpnx0"per prevenire gli errori di sintassi 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

Guarda BoxStarter. http://boxstarter.org

Questo dovrebbe fornirti ciò di cui hai bisogno per riavviare e continuare.


Non sono sicuro che sia effettivamente così complicato nell'interfaccia utente - ma se lo script sopra funziona, usalo. Se ha problemi e inizi a aver bisogno di qualcosa di più resistente con i controlli di riavvio in sospeso e simili, finirai per scrivere qualcosa di molto più complesso di quello che ottieni fuori dalla scatola con Boxstarter. Qualcosa da tenere a mente. HTH
ferventcoder
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.