come posso usare il comando shutdown per ibernare il computer in X ore? [duplicare]


41

Questa domanda ha già una risposta qui:

Mod, si prega di rimuovere il tag duplicato da questo. L'ho spiegato di seguito:

Non un duplicato. La domanda "duplicata" non affronta il fattore tempo - che è il vero problema qui.

Vorrei ibernare il mio PC Windows 7 entro 10 ore dal termine del download. Quando eseguo questo:

shutdown -h -t 36000

Tutto quello che ottengo è il testo di aiuto per lo spegnimento. Non importa se sono in admin o normale per il prompt cmd. C'è qualcosa che mi manca? Ho provato -t 36000solo con gli stessi risultati. Lo stesso con /invece di -.

Quindi o a) non funziona oppure b) ha un modo divertente di raccontarmelo. Le impostazioni di risparmio energia interferiscono con questo comando?

Aggiornamento: l' /sinterruttore spegne il computer (non in letargo). /hè un interruttore valido. Ecco uno screenshot del mio comando:

la mia schermata di spegnimento


1
Hai già eseguito "powercfg / hibernate su"? E cosa succede se si esegue il comando solo con l'opzione / h e nessuna opzione / t?
goblinbox,

@goblinbox L'ho provato con uno dei due switch, nessuno dei due ha funzionato. Devo eseguire powercfg per consentire all'arresto cmd di eseguire l'opzione / h?
jcollum,

Hibernate deve essere abilitato per funzionare, sì.
goblinbox,

Giuro di aver chiesto alle mod di rimuovere il tag "duplicato" da questo più volte, eppure si rifiutano.
jcollum,

Risposte:


37

L' -hinterruttore viene utilizzato per spegnere il computer su Linux, non su Windows. Il comando corretto per spegnere un computer Windows dopo 7 ore è:

shutdown -s -t 36000

Windows mostrerà una finestra di dialogo con un conto alla rovescia fino al momento in cui il computer si spegnerà.

Ma vuoi ibernare, non spegnere, e sfortunatamente, /hl' /tinterruttore e non funzionano insieme. Per ovviare al problema, è possibile utilizzare il atcomando per pianificare shutdown /hl'esecuzione in un determinato momento. Ad esempio, sono attualmente le 3:00 pm nel mio fuso orario, quindi 10 ore dopo sarebbero le 1:00. Per programmarlo in letargo, quindi, eseguivo:

at 1:00 shutdown /h

Utilizza la notazione oraria 24 ore su 24, quindi se volessi andare in letargo alle 13:00, avresti eseguito:

at 13:00 shutdown /h

Si noti che, sebbene non siano necessarie autorizzazioni di amministratore per eseguire il shutdowncomando su installazioni Windows predefinite, sono necessarie per il atcomando.


+1 spegnimento? mostrerà tutte le opzioni per il comando
Dave M

1
@jcollum: mi dispiace per quello! Sembra che Windows non supporti l'ibernazione a tempo. Si noti che se si omette l' /t 36000opzione, il comando funziona. Aggiungerò una soluzione alternativa alla mia risposta.
Patch del

Grazie. Non ho mai testato il comando / h da solo, perché l'avrebbe chiuso immediatamente. Inoltre, nella pagina man non ho visto nessun punto in cui dicesse che non erano compatibili - come avrei potuto trovarlo?
jcollum,

6
Sotto Win 8.1 il atcomando si rifiuta di essere eseguito, dichiarando che è obsoleto e sostituito da schtasks. Pietà.
Dominykas Mostauskis,

1
@DominykasMostauskis Presumo che ciò sia vero anche in Windows 10.
jcollum,

25

Non sembra che l'opzione -t sia supportata con l'opzione -h per l'arresto.

In Windows 7, puoi duplicare ciò che stai cercando di fare con uno script .bat contenente quanto segue:

timeout /t 36000 /nobreak
shutdown -h

Farà ibernare immediatamente il PC al termine del conto alla rovescia.


7
È possibile evitare il file batch ed eseguirlo anche direttamente: timeout /t 36000 /nobreak & shutdown /h ovviamente se si crea un file batch per semplificarlo, è necessario sostituire il timeout con %1uno scopo generale.
Synetech,

3
Un avvertimento, tuttavia, non è possibile interrompere l'arresto premendo un tasto con la &versione; così facendo si spegnerà immediatamente (si annulla solo l'attesa). Con un file batch, è possibile premere Ctrl+Breake CMD chiederà se si desidera terminare il file batch (e quindi interrompere l'arresto) o continuare. Quindi hai una scelta di comportamento. Oppure, puoi scrivere un altro file batch con choicee saltare del timeouttutto: choice /n /t 3600 /d Y /m "Abort hibernate?" & if errorlevel 2 shutdown -h(tuttavia non mostra il tempo rimanente ed è limitato a 9999 secondi - per più ore, basta usare at).
Synetech,

@Synetech: è possibile annullare chiudendo la finestra, appena provato.
Viktor Mellgren,

4
In realtà il comando senza un file batch è timeout /t 36000 /nobreak && shutdown -h: questo si interromperà se si annulla il timeout. Con una sola e commerciale eseguirà quindi il secondo comando.
Sven,

@Sven Penso che volevi dire shutdown /h. Notare il /h, no -h.
Dominykas Mostauskis,

10

PsShutdown da Sysinternals può ibernare il computer dopo un determinato periodo di tempo.

psshutdown -h -t 36000

4
Questo è in qualche modo eccessivo. Altre due risposte indicano una soluzione più semplice. Comunque grazie per il sysinternalsriferimento
Isaac l'

6
@Isaac: com'è eccessivo? PsShutdown può fare più di quanto non sia l'arresto e quindi è utile averlo. Non penso che l'aggiunta di programmi extra nel tuo percorso sia un grosso problema.
paradroid,

1
@Isaac Come è eccessivo? È più semplice di ogni altra soluzione e mi ha appena salvato il culo! :)
Vince Panuccio,

1
A differenza dell'arresto incorporato, PsShutdown non è in grado di visualizzare alcun messaggio di notifica di arresto sul sistema operativo Windows a 64 bit. Significa che non vi è alcun avviso di arresto / ibernazione imminente per l'utente attivo.
Weaver,
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.