como posso usar o comando shutdown para hibernar o computador em X horas? [duplicado]


41

Esta pergunta já tem uma resposta aqui:

Mods, remova a tag duplicada. Eu expliquei abaixo:

Não é uma duplicata. A pergunta "duplicada" não trata do fator tempo - que é o verdadeiro problema aqui.

Eu gostaria de hibernar o meu windows 7 pc em 10 horas após a conclusão do download. Quando eu executo isso:

shutdown -h -t 36000

Tudo o que recebo é o texto de ajuda do desligamento. Não importa se estou no admin ou normal para o prompt do cmd. Tem algo que estou perdendo? Eu tentei -t 36000apenas com os mesmos resultados. Mesmo com em /vez de -.

Então a) não está funcionando ou b) tem uma maneira engraçada de me falar sobre isso. As configurações de gerenciamento de energia interferem nesse comando?

Atualização: o /sswitch desliga o computador (não hiberna). /hé uma opção válida. Aqui está uma captura de tela do meu comando:

minha tela de desligamento


11
Você já executou "powercfg / hibernate on"? E o que acontece se você executar o comando apenas com a opção / h e sem / t?
Gblinbox #

@goblinbox Eu tentei com qualquer um dos switches, nenhum deles funcionou. Preciso executar o powercfg para permitir que o cmd de desligamento execute a opção / h?
Jcollum

O Hibernate deve estar ativado para funcionar, sim.
Gblinbox # 20/11

Juro que pedi aos mods para remover a tag "duplicate" disso várias vezes, mas eles recusam.
jcollum

Respostas:


37

A -hopção é usada para desligar o computador no Linux, não no Windows. O comando correto para desligar um computador Windows após 7 horas é:

shutdown -s -t 36000

O Windows mostrará uma caixa de diálogo com uma contagem regressiva até o momento em que o computador for desligado.

Mas você deseja hibernar, não desligar e, infelizmente, /ho /tswitch e o switch não funcionam juntos. Como solução alternativa, você pode usar o atcomando para agendar shutdown /ha execução em um determinado horário. Por exemplo, são 15:00 no meu fuso horário no momento, portanto, 10 horas depois seria 1:00. Para agendá-lo para hibernar, eu executaria:

at 1:00 shutdown /h

Ele usa notação de tempo de 24 horas; portanto, se você quiser hibernar às 13:00, execute:

at 13:00 shutdown /h

Observe que, embora você não precise de permissões de administrador para executar o shutdowncomando nas instalações padrão do Windows, você precisa delas para o atcomando.


+1 Desligar? mostrará todos os comutadores para o comando
Dave M

11
@jcollum: Desculpe por isso! Parece que o Windows não suporta hibernação cronometrada. Observe que se você omitir a /t 36000opção, o comando funcionará. Vou adicionar uma solução alternativa à minha resposta.
Patches

Obrigado. Eu nunca testei o comando / h por si só porque isso o encerraria imediatamente. Além disso, não vi nenhum lugar na página de manual em que dizia que eles não eram compatíveis - como eu teria encontrado isso?
Jcollum

6
No Windows 8.1, o atcomando se recusa a executar, informando que foi preterido e substituído por schtasks. Pena.
Dominykas Mostauskis

11
@DominykasMostauskis Suponho que isso também é verdade no Windows 10.
jcollum

25

Não parece que a opção -t seja suportada com a opção -h para desligar.

No Windows 7, você pode duplicar o que está tentando fazer com um script .bat contendo o seguinte:

timeout /t 36000 /nobreak
shutdown -h

Isso fará com que o PC hiberne imediatamente quando o tempo limite terminar.


7
Você pode evitar o arquivo em lote e executá-lo diretamente: timeout /t 36000 /nobreak & shutdown /h é claro que se você criar um arquivo em lote para simplificá-lo, substitua o tempo limite por um de %1maneira geral.
Synetech

3
Um aviso, porém, você não pode abortar o desligamento pressionando uma tecla com a &versão; isso será encerrado imediatamente (você está cancelando apenas a espera). Com um arquivo em lote, você pode pressionar Ctrl+Breake o CMD perguntará se deseja finalizar o arquivo em lote (e assim interromper o desligamento) ou continuar. Então você tem escolha de comportamento. Ou, você pode escrever um arquivo mais em lote com choicee pular timeoutcompletamente: choice /n /t 3600 /d Y /m "Abort hibernate?" & if errorlevel 2 shutdown -h(no entanto, ele não mostra o tempo restante e é limitado a 9999 segundos - por várias horas, basta usar at).
Synetech

@ Synetech: É possível cancelar fechando a janela, apenas tentei.
Viktor Mellgren

4
Na verdade, o comando sem um arquivo em lotes é timeout /t 36000 /nobreak && shutdown -h- isso será interrompido se você cancelar o tempo limite. Com apenas um e comercial, ele executaria o segundo comando então.
Sven

@ Mesmo eu acho que você quis dizer shutdown /h. Observe o /h, não -h.
Dominykas Mostauskis 29/10

10

O PsShutdown da Sysinternals pode hibernar o computador após um período de tempo especificado.

psshutdown -h -t 36000

4
Isso é um exagero. Duas outras respostas apontam uma solução mais simples. De qualquer forma obrigado pela sysinternalsreferência
Isaac

6
@ Isaac: Como é um exagero? O PsShutdown pode fazer mais do que o shutdown e, portanto, é útil. Eu não acho que adicionar programas extras no seu caminho seja algo tão importante.
Paradroid

11
@ Isaac Como isso é um exagero? É mais simples do que qualquer outra solução e acabou de me salvar! :)
Vince Panuccio

11
Diferentemente do desligamento interno, o PsShutdown não pode exibir nenhuma mensagem de notificação de desligamento no sistema operacional Windows de 64 bits. Isso significa que não há aviso de desligamento / hibernação iminente para o usuário ativo.
Weaver
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.