Спящий компьютер с таймаутом из командной строки в 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только отключит таймер и затем продолжит работу)

Phoshi
источник
хаха, +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
Craig
источник
я попробовал команду At 22:30 shutdown /h /fв командной строке, я получил сообщение, что доступ запрещен, но я администратор на моем компьютере. в ожидании вашего
отдыха
Я считаю, что в Windows 10 они изменили разрешения, необходимые для использования «в». Он предназначен только для системных заданий, и для его выполнения необходимо иметь учетную запись SYSTEM. Да, SYSTEM является более привилегированным, чем учетные записи администратора (локально), и да, есть способ получить командную строку под учетной записью SYSTEM.
Танасис Капелонис
8

Я думаю, что это жалуется на время. Просто поставь shutdown /hи все должно работать.

Иосип Медведь
источник
3

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

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

    timeout /t 36000 /nobreak & shutdown /h

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

Ace Cube001
источник
3

Если у вас есть Cygwin, это очень просто: sleep 45m && shutdown /h

Вы можете указать sleepв минутах, часах, секундах и даже днях. Проверьте этот ответ оsleep .

Доминикас Мостаускис
источник
2

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

Билл
источник
2

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

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

annonymous
источник
Неважно, вы не можете определить время спячки (по какой-то причине).
Synetech
@Synetech Для разработчиков Windows не составит труда разрешить эту функцию. но почему они этого не сделали? Оо
Амирреза Насири
1

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

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

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

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

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

C:\hibernate.bat [timeout]

user3702551
источник
-2

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

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

shutdown -h
Вамси Хариш
источник