Есть ли способ предотвратить переход Windows в спящий режим при запуске программы из командной строки или с помощью cygwin? В идеале я надеюсь на что-то, что можно использовать, например:
nosleep myscript.sh
Фон
Иногда я запускаю длительные задания, такие как ручное резервное копирование или передача больших файлов, и обнаружил, что Windows часто переходит в спящий режим до их завершения. Я хотел бы иметь возможность запустить команду и запретить спящий режим во время выполнения команды, но чтобы она автоматически снова работала после выполнения команды.
windows-7
command-line
sleep
cygwin
Мистер Фуз
источник
источник
Вот сценарий bash, который я написал на основании ответа harrymc.
источник
"$*"
на$*
. В противном случае я получил следующее, когда дал более одного аргумента (например$nosleep sleep 1
:/usr/bin/nosleep: line 31: sleep 1 command not found
"$@"
."$*"
неверно, потому что объединяет все аргументы, а$*
неверно, поскольку разделяет аргументы$IFS
и удаляет пустые.Loop { SoundPlay, %A_WinDir%\Media\ding.wav }
безwait
аргументов.Теперь
nosleep
в Cygwin есть такая команда. Просто установитеnosleep
пакет и запустите какАвтор Эндрю Шульман в 2011 году. См. Https://cygwin.com/ml/cygwin/2011-09/msg00151.html.
Источник на Launchpad . Он использует
SetThreadExecutionState()
(как уже упоминалось, бессонница), не создает отдельную схему питания.Обратите внимание, что он предотвращает автоматический переход системы в спящий режим, а не переход системы в спящий режим по запросу пользователя (например, при закрытии крышки ноутбука).
источник
Предложение от этого ответа @LorenzCK на связанный вопрос:
Использовать режим представления из Центра мобильности Windows (если имеется)
%WINDIR%\System32\PresentationSettings.exe "/start"
Проверьте с помощью
powercfg -requests
в командной строке. Должен вывести:Перевернутый это очищается при выключении или перезапуске. Теперь вам не нужно беспокоиться о сохранении и восстановлении исходных настроек питания 👍
Это также предотвращает переход мониторов в спящий режим, но вы можете сделать это с помощью команды в вашем скрипте. Простые, но сторонние решения: NirCmd
nircmd monitor off
или AutoHotkeySendMessage, 0x112, 0xF170, 2,, Program Manager
Встроенный модульpowercfg /requestsoverride process PresentationSettings.exe display
работать не будет.источник
Бессонница мешает вашим окнам перейти в спящий режим, но это не инструменты командной строки, поэтому ваш сценарий с командами harrymc - лучшее решение
источник