jak mogę użyć polecenia shutdown do hibernacji komputera w ciągu X godzin? [duplikować]

41

Mody, usuń z tego duplikat tagu. Wyjaśniłem to poniżej:

Nie duplikat. Pytanie „duplikat” nie odnosi się do czynnika czasu - co jest tutaj prawdziwym problemem.

Chciałbym zahibernować mój system Windows 7 w 10 godzin po zakończeniu pobierania. Kiedy wykonam to:

shutdown -h -t 36000

Wszystko, co dostaję, to tekst pomocy dotyczący zamykania. Nie ma znaczenia, czy jestem administratorem, czy normalnym w przypadku polecenia cmd. Czy czegoś brakuje? Próbowałem -t 36000tylko z tymi samymi wynikami. To samo z /zamiast -.

Więc albo: a) nie działa, albo b) ma zabawny sposób, aby mi o tym powiedzieć. Czy ustawienia zarządzania energią zakłócają to polecenie?

Aktualizacja: /sprzełącznik wyłącza komputer (nie hibernuje). /hjest prawidłowym przełącznikiem. Oto zrzut ekranu mojego polecenia:

mój ekran zamknięcia

jcollum
źródło
1
Czy uruchomiłeś już „powercfg / hibernate on”? A co się stanie, jeśli uruchomisz polecenie tylko z przełącznikiem / h, a nie z przełącznikiem / t?
goblinbox
@ goblinbox Próbowałem z dowolnym przełącznikiem, żaden nie działał. Czy muszę uruchomić powercfg, aby umożliwić cmd zamknięcia systemu do uruchomienia przełącznika / h?
jcollum
Hibernacja musi być włączona, aby działać, tak.
goblinbox
Przysięgam, prosiłem modów o usunięcie z tego tagu „duplikatu” kilka razy, ale odmawiają.
jcollum

Odpowiedzi:

37

-hPrzełącznik służy do wyłączenia komputera w systemie Linux, a nie Windows. Prawidłowe polecenie zamknięcia komputera z systemem Windows po 7 godzinach to:

shutdown -s -t 36000

System Windows wyświetli okno dialogowe z odliczaniem do czasu zamknięcia komputera.

Ale chcesz hibernować, a nie wyłączać , a niestety przełącznik /hi /tprzełącznik nie działają razem. Aby obejść ten problem, możesz użyć atpolecenia, aby zaplanować shutdown /huruchomienie w określonym czasie. Na przykład w mojej strefie czasowej jest obecnie godzina 15.00, więc 10 godzin później będzie 1:00. Aby zaplanować hibernację, uruchomiłbym:

at 1:00 shutdown /h

Korzysta z 24-godzinnej notacji czasowej, więc jeśli chcesz hibernować o godzinie 13:00, uruchom:

at 13:00 shutdown /h

Pamiętaj, że chociaż nie potrzebujesz uprawnień administratora, aby uruchomić shutdownpolecenie w domyślnych instalacjach systemu Windows, potrzebujesz ich do atpolecenia.

Łatki
źródło
+1 Wyłączenie? pokaże wszystkie przełączniki dla polecenia
Dave M
1
@jcollum: Przepraszam za to! Wygląda na to, że system Windows nie obsługuje hibernacji czasowej. Zauważ, że jeśli pominiesz /t 36000przełącznik, polecenie działa. Dodam obejście do mojej odpowiedzi.
Łaty
Dzięki. Nigdy nie testowałem samego polecenia / h, ponieważ natychmiast by je zamknęło. Poza tym nigdzie nie widziałem strony podręcznika, w której napisano, że nie są kompatybilne - jak to mam znaleźć?
jcollum
6
Pod Win 8.1 atpolecenie nie uruchamia się, stwierdzając, że jest przestarzałe i zastąpione przez schtasks. Szkoda.
Dominykas Mostauskis
1
@DominykasMostauskis Zakładam, że tak jest również w systemie Windows 10.
jcollum
25

Nie wygląda na to, żeby opcja -t była obsługiwana z opcją -h dla zamykania.

W systemie Windows 7 możesz powielić to, co próbujesz zrobić, za pomocą skryptu .bat zawierającego następujące elementy:

timeout /t 36000 /nobreak
shutdown -h

Spowoduje to, że komputer natychmiast przejdzie w stan hibernacji, gdy upłynie limit czasu.

Joe Internet
źródło
7
Możesz uniknąć pliku wsadowego i uruchomić go również bezpośrednio: timeout /t 36000 /nobreak & shutdown /h Oczywiście, jeśli utworzysz plik wsadowy, aby go uprościć, powinieneś zastąpić limit czasu %1, aby był to cel ogólny.
Synetech
3
Jedno ostrzeżenie: nie można przerwać zamykania, naciskając klawisz z &wersją; spowoduje to natychmiastowe zamknięcie (anulujesz tylko oczekiwanie). W pliku wsadowym możesz nacisnąć, Ctrl+Breaka CMD zapyta, czy chcesz zakończyć plik wsadowy (a tym samym przerwać zamykanie), czy kontynuować. Masz więc wybór zachowania. Możesz też napisać więcej pliku wsadowego za pomocą choicei timeoutcałkowicie pominąć : choice /n /t 3600 /d Y /m "Abort hibernate?" & if errorlevel 2 shutdown -h(jednak nie pokazuje on pozostałego czasu i jest ograniczony do 9999 sekund - w przypadku wielu godzin, po prostu użyj at).
Synetech
@ Synetech: Można anulować, zamykając okno, po prostu wypróbowałem.
Viktor Mellgren,
4
Właściwie polecenie bez pliku wsadowego to timeout /t 36000 /nobreak && shutdown -h- zatrzyma się, jeśli anulujesz limit czasu. Mając tylko jeden znak i wykona wtedy drugie polecenie.
Sven
@Sven Myślę, że miałeś na myśli shutdown /h. Zauważ, że /hnie -h.
Dominykas Mostauskis
10

PsShutdown z Sysinternals może hibernować komputer po określonym czasie.

psshutdown -h -t 36000
paradroid
źródło
4
To jakoś przesada. Dwie inne odpowiedzi wskazują na prostsze rozwiązanie. W każdym razie dziękuję za sysinternalsodniesienie
Izaak
6
@Isaac: Jak to jest przesada? PsShutdown może zrobić więcej niż zamknięcie i dlatego warto go mieć. Nie sądzę, aby dodawanie dodatkowych programów na twojej drodze było tak wielką sprawą.
paradroid
1
@Isaac Jak to jest przesada? Jest to prostsze niż każde inne rozwiązanie i właśnie uratowałem mój tyłek! :)
Vince Panuccio
1
W przeciwieństwie do wbudowanego zamykania, PsShutdown nie może wyświetlić żadnego powiadomienia o zamknięciu w 64-bitowym systemie operacyjnym Windows. Oznacza to, że nie ma ostrzeżenia o bliskim wyłączeniu / hibernacji dla aktywnego użytkownika.
Weaver