Спящий компьютер с таймаутом из командной строки в Windows 7


63

Я пытаюсь перевести компьютер в спящий режим по команде. Я использовал, shutdown /s /t 20чтобы выключить компьютер. Я изменяю / s на / h на hibernate, и теперь он просто возвращает текст использования, как будто он не распознает то, что я ввел. В это говорит

/h         Hibernate the local computer.

Есть ли что-то еще, что мне нужно использовать с / h, чтобы перевести его в спящий режим?


Но в этом случае (если вы используете waitfor или что-то в этом роде) вы не можете отменить запланированную спячку ....

Ответы:


76

Я не верю, что вы можете установить время для спячки, к сожалению.

Пытаться:

ping -n 20 127.0.0.1 > NUL 2>&1 && shutdown /h /f

Это pingхакерский способ отложить действие. -n 20следует подождать 20 секунд.

(двойное значение &&позволит вам сделать Ctrl+, Cчтобы отменить операцию, но если вы используете простое, &то нажатие Ctrl+ Cтолько отключит таймер и затем продолжит работу)


хаха, +1 для этой хорошей замены "сна" :) я написал свой собственный .exe, чтобы сделать это, но .. хехахахар.
Акира

6
Почему мы не можем установить время для спящего режима? Разработчикам Windows не составит труда разрешить эту функцию. но почему они этого не сделали? Оо
Амирреза Насири

Хорошо, но && не работает в PowerShell
доктор Де

Примечание: > NUL 2>&1деталь предотвратит любой вывод из ping(для получения дополнительной информации см. Связанный вопрос ).
Топ-Мастер

34

Вы также можете использовать команды timeout или waitfor аналогичным образом.

timeout /t 20 /NOBREAK > NUL && shutdown /h

или же

waitfor NUL /t 20 || shutdown /h

Подробнее здесь: Как заставить пакетный файл ждать / спать в течение нескольких секунд?


1
Оба варианта работают, но первый лучше . Если вы хотите отменить команду с помощью <kbd> Ctrl </ kbd> + <kbd> C </ kbd>, первая опция будет отменена, но вторая получит a falseв первом условии и shutdownсразу перейдет к команде.
IgniteCoders

10

Я использую следующее:

sleep 20 && shutdown /h /f

Или это, если я хочу отключить в определенное время:

At 22:30 shutdown /h /f

я попробовал команду At 22:30 shutdown /h /fв командной строке, я получил сообщение, что доступ запрещен, но я администратор на моем компьютере. в ожидании вашего
отдыха

Я считаю, что в Windows 10 они изменили разрешения, необходимые для использования «в». Он предназначен только для системных заданий, и для его выполнения необходимо иметь учетную запись SYSTEM. Да, SYSTEM является более привилегированным, чем учетные записи администратора (локально), и да, есть способ получить командную строку под учетной записью SYSTEM.
Танасис Капелонис


3

Конечно, вы можете установить время для спячки.

Если вы действительно хотите перевести компьютер в спящий режим по истечении определенного времени, все, что вам нужно сделать, это ввести следующую команду в cmd, т.е.

    timeout /t 36000 /nobreak & shutdown /h

Теперь компьютер начнет обратный отсчет с 36000 до 0, прежде чем перейдет в спящий режим. Но вы должны заметить, что вы можете изменить 36000 на любое количество секунд, которое вам подходит.



2

Вы пробовали планировщик заданий Windows? Если у вас есть сценарий, вы можете настроить его запуск в определенное время - это должно ответить на вопрос о задержке.


2

я всегда использую это:

выключение -h


Неважно, вы не можете определить время спячки (по какой-то причине).
Synetech

@Synetech Для разработчиков Windows не составит труда разрешить эту функцию. но почему они этого не сделали? Оо
Амирреза Насири

1

Я также долго искал спящий режим. Наконец я сделал следующее решение:

Создайте batфайл, как показано ниже:

timeout /t %1 /nobreak && shutdown /h

Предположим, что он сохранен в C:\hibernate.bat

Затем откройте Runкоманду ( Win+R) и запустите batфайл с тайм-аутом, как показано ниже:

C:\hibernate.bat [timeout]


-2

Вместо /использования -.

Используйте команду ниже в CMD как admin priv и проверьте

shutdown -h
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.