¿Cómo puedo usar el comando de apagado para hibernar la computadora en X horas? [duplicar]

41

Esta pregunta ya tiene una respuesta aquí:

Mods, elimine la etiqueta duplicada de esto. Lo he explicado a continuación:

No es un duplicado La pregunta "duplicado" no aborda el factor tiempo, que es el verdadero problema aquí.

Me gustaría hibernar mi PC con Windows 7 en 10 horas después de que finalice una descarga. Cuando ejecuto esto:

shutdown -h -t 36000

Todo lo que obtengo es el texto de ayuda de apagado. No importa si estoy en admin o normal para el indicador de cmd. ¿Se me escapa algo? Lo intenté -t 36000solo con los mismos resultados. Lo mismo con en /lugar de -.

Entonces, a) no está funcionando ob) tiene una forma divertida de contarme al respecto. ¿La configuración de administración de energía interfiere con este comando?

Actualización: el /sinterruptor apaga la computadora (no hiberna). /hEs un cambio válido. Aquí hay una captura de pantalla de mi comando:

mi pantalla de apagado

jcollum
fuente
1
¿Ya has ejecutado "powercfg / hibernate on"? ¿Y qué sucede si ejecuta el comando solo con el modificador / h y sin el modificador / t?
goblinbox
@goblinbox Lo probé con cualquier interruptor, ninguno funcionó. ¿Necesito ejecutar powercfg para permitir que cmd de apagado ejecute el modificador / h?
jcollum
Hibernate tiene que estar habilitado para funcionar, sí.
goblinbox
Juro que le he pedido a los mods que eliminen la etiqueta "duplicado" varias veces, pero se niegan.
jcollum

Respuestas:

37

El -hinterruptor se usa para apagar la computadora en Linux, no en Windows. El comando correcto para apagar una computadora con Windows después de 7 horas es:

shutdown -s -t 36000

Windows mostrará un cuadro de diálogo con una cuenta regresiva hasta el momento en que la computadora se apague.

Pero desea hibernar, no apagar, y desafortunadamente, /hel /tinterruptor y no funcionan juntos. Como solución alternativa, puede usar el atcomando para programar la shutdown /hejecución en un momento determinado. Por ejemplo, en este momento son las 3:00 pm en mi zona horaria, por lo que 10 horas más tarde serían las 1:00 am. Para programarlo para que hiberne entonces, ejecutaría:

at 1:00 shutdown /h

Utiliza la notación de tiempo de 24 horas, por lo que si desea que hiberne a la 1:00 p.m., debe ejecutar:

at 13:00 shutdown /h

Tenga en cuenta que, si bien no necesita permisos de administrador para ejecutar el shutdowncomando en las instalaciones predeterminadas de Windows, sí los necesita para el atcomando.

Parches
fuente
¿+1 apagado? mostrará todos los interruptores para el comando
Dave M
1
@jcollum: ¡Perdón por eso! Parece que Windows no admite la hibernación programada. Observe que si omite el /t 36000interruptor, el comando funciona. Agregaré una solución a mi respuesta.
Parches
Gracias. Nunca probé el comando / h solo porque eso simplemente lo habría apagado de inmediato. Además, no vi en ninguna parte de la página de manual donde dijera que no eran compatibles, ¿cómo podría haberlo encontrado?
jcollum
66
Bajo Win 8.1 atcomando se niega a ejecutar, indicando que es obsoleto y reemplazado por schtasks. Lástima.
Dominykas Mostauskis
1
@DominykasMostauskis Supongo que esto también es cierto en Windows 10.
jcollum
25

No parece que la opción -t sea compatible con la opción -h para el apagado.

En Windows 7, puede duplicar lo que está intentando hacer con un script .bat que contiene lo siguiente:

timeout /t 36000 /nobreak
shutdown -h

Causará que la PC hiberne inmediatamente una vez que finalice el tiempo de espera.

Joe Internet
fuente
77
Puede evitar el archivo por lotes y ejecutarlo directamente también: por timeout /t 36000 /nobreak & shutdown /h supuesto, si crea un archivo por lotes para simplificarlo, debe reemplazar el tiempo de espera %1para que sea de uso general.
Synetech
3
Sin embargo, una advertencia es que no puede cancelar el apagado presionando una tecla con la &versión; al hacerlo, se cerrará de inmediato (solo cancelará la espera). Con un archivo por lotes, puede presionar Ctrl+Breaky CMD le preguntará si desea finalizar el archivo por lotes (y así abortar el apagado) o continuarlo. Entonces tienes elección de comportamiento. O bien, puede escribir un archivo por lotes más con choicey omitir por timeoutcompleto: choice /n /t 3600 /d Y /m "Abort hibernate?" & if errorlevel 2 shutdown -h(sin embargo, no muestra el tiempo restante y está limitado a 9999 segundos, para varias horas, solo use at).
Synetech
@Synetech: es posible cancelar cerrando la ventana, solo lo intenté.
Viktor Mellgren
44
En realidad, el comando sin un archivo por lotes es timeout /t 36000 /nobreak && shutdown -h: esto se detendrá si cancela el tiempo de espera. Con solo un ampersand, ejecutaría el segundo comando entonces.
Sven
@Sven Creo que te refieres shutdown /h. Observe el /h, no -h.
Dominykas Mostauskis
10

PsShutdown de Sysinternals puede hibernar la computadora después de un período de tiempo específico.

psshutdown -h -t 36000
paradroid
fuente
44
Esto es de alguna manera exagerado. Otras dos respuestas señalan una solución más simple. De todos modos, gracias por la sysinternalsreferencia
Isaac
66
@ Isaac: ¿Cómo es exagerado? PsShutdown puede hacer más de lo que puede hacer el apagado, por lo que es útil tenerlo. No creo que agregar programas adicionales en tu camino sea tan importante.
paradroid
1
@ Isaac ¿Cómo es esa exageración? ¡Es más simple que cualquier otra solución y me salvó el trasero! :)
Vince Panuccio
1
A diferencia del apagado integrado, PsShutdown no puede mostrar ningún mensaje de notificación de apagado en el sistema operativo Windows de 64 bits. Significa que no hay advertencia de inminente apagado / hibernación para el usuario activo.
Weaver