bagaimana saya bisa menggunakan perintah shutdown untuk hibernasi komputer dalam X jam? [duplikat]

41

Pertanyaan ini sudah ada jawabannya di sini:

Mod, harap hapus tag duplikat dari ini. Saya sudah jelaskan di bawah ini:

Bukan duplikat. Pertanyaan "duplikat" tidak membahas faktor waktu - yang merupakan masalah sebenarnya di sini.

Saya ingin hibernasi windows 7 pc saya dalam 10 jam setelah pengunduhan selesai. Ketika saya menjalankan ini:

shutdown -h -t 36000

Yang saya dapatkan hanyalah teks bantuan shutdown. Tidak masalah jika saya di admin atau normal untuk cmd prompt. Apakah ada sesuatu yang saya lewatkan? Saya sudah mencoba -t 36000hanya dengan hasil yang sama. Sama dengan /bukannya -.

Jadi a) itu tidak berfungsi atau b) itu memiliki cara lucu untuk memberi tahu saya tentang hal itu. Apakah pengaturan manajemen daya mengganggu perintah ini?

Pembaruan: /sSwitch mematikan komputer (tidak hibernasi). /hadalah saklar yang valid. Berikut screenshot dari perintah saya:

layar shutdown saya

jcollum
sumber
1
Sudahkah Anda menjalankan "powercfg / hibernate on"? Dan apa yang terjadi jika Anda menjalankan perintah hanya dengan tombol / jam, dan tidak ada tombol / t?
goblinbox
@ goblinbox Saya mencobanya dengan kedua saklar, tidak ada yang bekerja. Apakah saya perlu menjalankan powercfg untuk memungkinkan shutdown cmd untuk menjalankan sakelar / h?
jcollum
Hibernasi harus diaktifkan agar berfungsi, ya.
goblinbox
Saya bersumpah saya telah meminta mod untuk menghapus tag "duplikat" dari ini beberapa kali, namun mereka menolak.
jcollum

Jawaban:

37

The -hswitch digunakan untuk mematikan komputer di Linux, bukan Windows. Perintah yang benar untuk mematikan komputer Windows setelah 7 jam adalah:

shutdown -s -t 36000

Windows akan menampilkan kotak dialog dengan hitungan mundur sampai waktu komputer akan dimatikan.

Tapi, Anda ingin hibernate, tidak shutdown, dan sayangnya, /hdan /tsaklar tidak bekerja sama. Sebagai solusinya, Anda dapat menggunakan atperintah untuk menjadwalkan shutdown /huntuk berjalan pada waktu tertentu. Misalnya, sekarang jam 3:00 sore di zona waktu saya, jadi 10 jam kemudian adalah jam 1:00 pagi. Untuk menjadwalkannya untuk hibernasi, saya akan menjalankan:

at 1:00 shutdown /h

Ini menggunakan notasi waktu 24 jam, jadi jika Anda ingin hibernasi pada jam 1:00 siang, Anda akan menjalankan:

at 13:00 shutdown /h

Harap dicatat, bahwa meskipun Anda tidak memerlukan izin administrator untuk menjalankan shutdownperintah pada instalasi Windows default, Anda memang membutuhkannya untuk atperintah tersebut.

Tambalan
sumber
+1 Shutdown? akan menampilkan semua sakelar untuk perintah
Dave M
1
@ jcollum: Maaf tentang itu! Tampaknya Windows tidak mendukung hibernasi waktunya. Perhatikan jika Anda menghilangkan /t 36000saklar, perintah itu berfungsi. Saya akan menambahkan solusi untuk jawaban saya.
Tambalan
Terima kasih. Saya tidak pernah menguji perintah / h dengan sendirinya karena itu akan langsung menutupnya. Juga, saya tidak melihat dimanapun di halaman manual di mana dikatakan bahwa mereka tidak kompatibel - bagaimana saya menemukan itu?
jcollum
6
Di bawah Win 8.1 atperintah menolak untuk menjalankan, menyatakan bahwa itu sudah ditinggalkan dan diganti oleh schtasks. Kasihan.
Dominykas Mostauskis
1
@DominykasMostauskis Saya berasumsi ini juga berlaku di Windows 10.
jcollum
25

Itu tidak terlihat seperti opsi -t didukung dengan opsi -h untuk shutdown.

Di bawah Windows 7, Anda dapat menduplikasi apa yang Anda coba lakukan dengan skrip .bat yang berisi yang berikut ini:

timeout /t 36000 /nobreak
shutdown -h

Ini akan menyebabkan PC untuk segera hibernate setelah batas waktu selesai menghitung mundur.

Joe Internet
sumber
7
Anda dapat menghindari file-batch dan menjalankannya secara langsung juga: timeout /t 36000 /nobreak & shutdown /h Tentu saja jika Anda membuat file-batch untuk menyederhanakannya, maka Anda harus mengganti timeout dengan %1sehingga itu untuk keperluan umum.
Synetech
3
Satu peringatan, Anda tidak dapat membatalkan shutdown dengan menekan tombol dengan &versi; melakukan hal itu akan segera mematikan (Anda membatalkan menunggu saja). Dengan file batch, Anda dapat menekan Ctrl+Breakdan CMD akan bertanya apakah Anda ingin mengakhiri file batch (dan dengan demikian membatalkan shutdown) atau melanjutkannya. Jadi Anda punya pilihan perilaku. Atau, Anda dapat menulis lebih banyak file batch dengan choicedan lewati timeoutsemuanya: choice /n /t 3600 /d Y /m "Abort hibernate?" & if errorlevel 2 shutdown -h(namun tidak menunjukkan waktu yang tersisa dan dibatasi hingga 9999 detik — untuk multi-jam, cukup gunakan at).
Synetech
@ Sinetech: Mungkin untuk membatalkan dengan menutup jendela, coba saja.
Viktor Mellgren
4
Sebenarnya perintah tanpa file batch adalah timeout /t 36000 /nobreak && shutdown -h- ini akan berhenti jika Anda membatalkan batas waktu. Dengan hanya satu ampersand itu akan menjalankan perintah kedua itu.
Sven
@ Bahkan saya pikir Anda maksud shutdown /h. Perhatikan /h, tidak -h.
Dominykas Mostauskis
10

PsShutdown dari Sysinternals dapat hibernasi komputer setelah waktu yang ditentukan.

psshutdown -h -t 36000
paradroid
sumber
4
Ini entah bagaimana berlebihan. Dua jawaban lain menunjukkan solusi yang lebih sederhana. Pokoknya terima kasih untuk sysinternalsreferensi
Isaac
6
@ Isaac: Bagaimana itu berlebihan? PsShutdown dapat melakukan lebih dari yang dapat shutdown dan sangat berguna untuk dimiliki. Saya tidak berpikir menambahkan program tambahan di jalur Anda adalah masalah besar.
paradroid
1
@ Isaac Bagaimana itu berlebihan? Ini lebih sederhana daripada solusi lainnya dan hanya menyelamatkan saya! :)
Vince Panuccio
1
Tidak seperti shutdown internal, PsShutdown tidak dapat menampilkan pesan notifikasi shutdown pada OS Windows 64-bit. Itu berarti tidak ada peringatan shutdown / hibernate untuk pengguna aktif.
Weaver