Предотвратете съня в скриптове

Има ли някакъв начин да попреча на Windows да заспи, докато се изпълнява програма в командния ред или с Cygwin? В идеалния случай се надявам на нещо, което може да се използва като:

съня

заден план

Понякога започвам дългосрочни задачи като ръчно архивиране или прехвърляне на големи файлове и откривам, че Windows често заспива, преди да са готови. Искам да мога да стартирам командата и да предотвратя хибернация, докато командата се изпълнява, но искам тя автоматично да започне да работи отново, след като командата завърши.

Можете да използвате скрипт в powercfg, за да промените времето, в което компютърът чака, преди да заспи:

Никога не влизайте в режим на готовност:

Превключете в режим на готовност след 15 минути:

Ето един bash скрипт, който направих въз основа на отговора на harrymc.

nosleep Вече има такава команда в Cygwin. Просто инсталирайте пакета nosleep и го стартирайте като a

Написано от Андрю Е. Шулман през 2011 г. Вижте https://cygwin.com/ml/cygwin/2011-09/msg00151.html

Източникът на стартовия панел. Той използва SetThreadExecutionState () (както споменатата по-горе Insomnia), не създава отделна схема за захранване.

Имайте предвид, че това ще попречи на системата да влиза автоматично в режим на хибернация в неактивен режим, а не на системата да влиза в режим на хибернация по искане на потребител (например при затваряне на капака на лаптопа).

Предложение от този отговор от @LorenzCK на свързан въпрос:

Използвайте режим на презентация в Центъра за мобилност на Windows (ако е наличен).

Проверете с powercfg -requests в командния ред. Трябва да изведе:

Предимството е, че ще бъде изтрито при изключване или рестартиране. Сега не е нужно да се притеснявате за запазване и възстановяване на първоначалните настройки на захранването 👍