як я можу використовувати команду вимкнення для сплячого стану комп’ютера за X годин? [дублікат]


41

На це питання вже є відповідь тут:

Моди, видаліть з цього повторюваний тег. Я пояснив це нижче:

Не дублікат. Питання "дублікат" не відповідає фактору часу - в чому справжня проблема.

Я хотів би перезимувати свій Windows 7 ПК за 10 годин після закінчення завантаження. Коли я виконую це:

shutdown -h -t 36000

Все, що я отримую, - це довідковий текст про вимкнення. Не має значення, чи я в адміністраторі, чи нормально для запиту cmd. Щось мені не вистачає? Я намагався -t 36000лише з тими ж результатами. Те саме з /замість -.

Отже, або: а) це не працює, або б) він має смішний спосіб розповісти мені про це. Чи перешкоджають налаштування управління живленням цю команду?

Оновлення: /sкомутатор вимикає комп'ютер (не перебуває в сплячому режимі). /hє дійсним перемикачем. Ось скріншот моєї команди:

мій екран вимкнення


1
Ви ще не запустили "powercfg / hibernate on"? А що станеться, якщо запустити команду тільки перемикачем / h, а не / t перемикачем?
goblinbox

@goblinbox Я спробував це з будь-яким перемикачем, жоден не працював. Чи потрібно запускати powercfg, щоб дозволити завершення роботи cmd для перемикання / h?
jcollum

Щоб спрацювати, слід увімкнути сплячку.
гоблінбокс

Клянусь, я кілька разів просив модників видалити тег "дублікат", але вони відмовляються.
jcollum

Відповіді:


37

-hПеремикач використовується для виключення комп'ютера на Linux, а НЕ Windows. Правильна команда вимкнути комп'ютер Windows через 7 годин:

shutdown -s -t 36000

Windows покаже діалогове вікно із зворотним відліком до тих пір, поки комп'ютер не вимкнеться.

Але, ви хочете перезимувати, а не відключення, і, на жаль, /hі /tперемикач не працюють разом. Як вирішення, ви можете використовувати atкоманду для планування shutdown /hзапуску на певний час. Наприклад, зараз у моєму часовому поясі о 15:00, тож через 10 годин буде 1:00 ранку. Щоб запланувати його на сплячку тоді, я би запустив:

at 1:00 shutdown /h

Він використовує цілодобове позначення часу, тому якщо ви хочете, щоб він перезимував о 13:00, ви запускаєте:

at 13:00 shutdown /h

Зауважте, що, хоча вам не потрібні права адміністратора для запуску shutdownкоманди на установках Windows за замовчуванням, вони потрібні для atкоманди.


+1 Вимкнення? покаже всі комутатори для команди
Дейв М

1
@jcollum: Вибачте за це! Здається, Windows не підтримує присвячену сплячку. Зверніть увагу, якщо ви /t 36000вимкнете перемикач, команда працює. Я додам відповідь до своєї відповіді.
Патчі

Спасибі. Я ніколи не перевіряв команду / h сама по собі, тому що це було б негайно закрити її. Крім того, я ніде не бачив на сторінці чоловіка, де написано, що вони не сумісні - як я це знайшов?
jcollum

6
atКоманда Win 8.1 відмовляється запускати, заявляючи, що вона застаріла і замінена на schtasks. Шкода.
Домінікас Мостаскіс

1
@DominykasMostauskis Я припускаю, що це справедливо і в Windows 10.
jcollum

25

Не схоже, що опція -t підтримується параметром -h для відключення.

У Windows 7 ви можете дублювати те, що ви намагаєтеся зробити із сценарієм .bat, що містить таке:

timeout /t 36000 /nobreak
shutdown -h

Це призведе до того, що ПК відразу ж перезимує, коли тайм-аут буде зроблено відлік часу.


7
Ви можете уникнути batch-файлу та запустити його також безпосередньо: timeout /t 36000 /nobreak & shutdown /h Звичайно, якщо ви зробите пакетний файл для його спрощення, тоді слід замінити час очікування %1таким чином, щоб воно було загальним призначенням.
Synetech

3
Одне попередження, однак ви не можете скасувати відключення, натиснувши клавішу з &версією; це негайно припинить роботу (ви скасуєте лише очікування). За допомогою batch-файлу ви можете натиснути, Ctrl+Breakі CMD запитає, чи хочете ви закінчити batch-файл (і таким чином припинити закриття) або продовжити його. Отже, у вас є вибір поведінки. Або ви можете написати більш пакетний файл за допомогою choiceі пропустити timeoutвзагалі: choice /n /t 3600 /d Y /m "Abort hibernate?" & if errorlevel 2 shutdown -h(однак він не показує час, що залишився, і обмежений 9999 секундами - для багатогодинного просто використання at).
Synetech

@Synetech: Можна скасувати, закривши вікно, просто спробувавши.
Віктор Мелгрен

4
Насправді команда без пакетного файлу є timeout /t 36000 /nobreak && shutdown -h- це припиниться, якщо ви скасуєте тайм-аут. Тоді з одним амперсом і тоді вона виконала б другу команду.
Свен

@Sven Я думаю, ти мав на увазі shutdown /h. Зауважте /h, ні -h.
Домінікас Мостаскіс

10

PsShutdown від Sysinternals може перейти в сплячку за комп’ютером через певний час.

psshutdown -h -t 36000

4
Це якось надмірно. Дві інші відповіді вказують на більш просте рішення. Все одно дякую за sysinternalsдовідку
Ісаак

6
@Isaac: Як це надмірно? PsShutdown може зробити більше, ніж може відключення, і так корисно мати. Я не думаю, що додавання додаткових програм на ваш шлях - це не велика справа.
парадороїд

1
@Isaac Як це перевиконання? Це простіше, ніж будь-яке інше рішення і просто врятувало мою дупу! :)
Вінс Пануччо

1
На відміну від вбудованого відключення, PsShutdown не в змозі відобразити жодне повідомлення про завершення роботи на 64-бітній ОС Windows. Це означає, що немає попередження про неминуче вимкнення / сплячку для активного користувача.
Ткач
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.