Pull to refresh

Comments 43

что за бред
зачем это здесь?
я такое писал еще в 2010 когда в школе учился
разве такую мелочь нельзя просто нагуглить?
зачем статья?
Вроде бы, ради дедов морозов.
Если этого не будет «здесь», вы не сможете «нагуглить». Эта статья очень даже хороша. для таких, как вы. Гугловодов)
Была бы, если бы этой инфы уже не было на тысячах других сайтов. Буквально, без утрирования.

Потом это нагугливают такие горе писатели как Вы и используют…

Конечно забавно было увидеть тут свою статью, которую писал ещё лет 10 назад. Тогда я был удивлён что многие коллеги не знали простых вещей и то насколько гибкой может быть командная строка не только *nix, но и windows. В наше же время такая статья действительно абсолютно никому не нужна и не интересна. Непонятно только зачем её всё же опубликовали спустя столько времени.

Для этой же функции научил умную колонку с Алисой через Home Assistant посылать через SSH команду на переход компьютера в спящий режим. Конечно, чуть посложнее вышло, чем 2 строчки кода, но управлять голосом домом бесценно.

Тянет на современную статью)

Ого! С удовольствием бы почитала подробности, чтобы сделать так же

зачем время отсчитывать пингами? есть же timeout
timeout /t 3600 /nobreak

Автор открыл для себя волшебный мир командной строки, не судите строго.
Дальше пойдёт речь про батники в три строки.

О как… До winxp была команда choice, которую они зачем-то убрали (видимо, решили, что set /p + ping localhost (ms официально рекомендовала так делать задержку) достаточно, но не учли большей интерактивности choice). А когда появилась команда timeout?

В Unix-e и Linux-e это с рождения, да и мессагу в терминал пошлёт если надо или не пошлёт если не надо. Может и ребутнуть и хальтануть и выключить. И даже можно прервать выполнение если понял что погорячился.
того программа заняла 73 байт:

На чём она была написана уже и не помню (VC, VB, Delphi или Assembler). Размер ее был тоже не большим, но все же 16 166 против 47 байт не идут ни в какое сравнение.

Эм-м автор сравнивает объем бинарника и объем скрипта, который вызывает другие бинарники?


Я в 2006\8 решал другую задачу (гораздо более интересную), как программно будить ПК в заданное время — обычный будильник. Но на тот момент весь интернет полнился «такое невозможно»,«как вы себе это представляете»
а я на си написал прогу которая для сброса HDD для задания пароля усыпляла комп и затем его будила и делала свою работу с hdd. типа power cycle.
UFO just landed and posted this here
Да, я тоже помню про «такое невозможно». Т.к. сам в далёком 1999, чтобы разбудить компьютер делал на ассемблере прогу, которая бы после установки времени пробуждения записывала в BIOS новые значения времени и пересчитывала checksum. Иначе checksum fail + BIOS Error и всё, приехали. Это работало у меня только с AWARD BIOS, там хотя бы указатель на адрес харанения переменной в подпрограмме можно было легко найти. А вот дизассемблирование AMI BIOS было ещё тем квестом, либо я был на тот момент ещё совсем зелёный в этом деле, либо говнокод там был знатный.))))
Не знаю как в 2006, но в Windows 7 для этих целей использую до сих пор «Планировщик задач» с выставленной галочкой «Пробуждать компьютер для выполнения задачи»
Планирую на определенное время проигрывание определенной песни.

shutdown /t 1200 /f /h
Гибернация через 1200 секунд. 22 байта занимает строка.

Самое изящное решение. Спасибо! Жаль статья вышла на 10 лет позже чем я её написал)))
Запускать батник вручную? Автор, изучи Планировщик заданий, пожалуйста, и дополни статью.
Я так понял автор запускает батник перед сном. А это не какое-то конкретное время.
Как будто сложно дёрнуть API и нарисовать окошко с кнопочкой «отложить», если спать ещё не собираешься. Да и раз уж дошло дело до батника, то и режим можно начать соблюдать.
В чём логика?
А если я хочу пойти спать раньше, чем настроена задача в планировщике, то надо обязательно сидеть её ждать?
А зачем ее ждать? В том то и суть планировщика что задание уже запланировано и выполнится само.
Спасибо, я в курсе как работает планировщик и даже пользуюсь им.

Задача автора статьи — перед тем как ложиться спать запустить команду, которая выключит компьютер через 20 минут. Чтобы радио перестало играть через 20 минут, а не, скажем, через 2 часа.

Сегодня автор ложится в 22.15, завтра в 23.55, послезавтра в 23.01

Вы предлагаете вместо запуска батника дабл кликом каждый раз заходить в планировщик и менять время запуска задачи? (я в курсе, что можно батник из планировщика запустить, но зачем тогда в этом сценарии вообще планировщик?)
Задача автора статьи — перед тем как ложиться спать запустить команду, которая выключит
Это не задача, а решение. А задача чтобы компьютер был выключен когда за ним уже нет пользователя, плюс предположение в ветке комментариев что пользователь уходит спать.
Вы предлагаете вместо запуска батника дабл кликом каждый раз заходить в планировщик и менять время запуска задачи?
Никто такого не предлагал, да и зачем? Если пользователь в среднем уходит спать в 11, то компьютер пусть выключается 11.20, чтобы не работал ночью. Все. Пользователю нужно совершать 0 кликов. Кому вообще нужно отсчитывать ровно 20 минут с момента как идешь спать, и зачем?
плюс предпоожение в ветке комментариев что пользователь уходит спать.
Это написано прямым текстом в статье. Автор включает радио, чтобы послушать перед сном.

Если пользователь в среднем уходит спать в 11, то компьютер пусть выключается 11.20, чтобы не работал ночью. Все. Кому вообще нужно отсчитывать ровно 20 минут с момента как идешь спать, и зачем?
Эта функция реализована в разных плейерах в мобильном — выключать воспроизведение после N минут неактивности.

Вы никогда ничего не слушали на ночь? Я бывает слушаю подкасты. Использую данную функцию очень часто. Сценарий «в среднем в 23.00» тут вообще не подходит.

Если я сегодня лёг в 23.19, то любимый подкаст буду слушать всего одну минуту? Я не успею заснуть за минуту.

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

Если «в среднем» я засыпаю за 15 минут, то я хочу отсчитывать 15 минут от момента, когда я включил воспроизведение, а не от заданного времени в планировщике.
Эта функция реализована в разных плейерах в мобильном — выключать воспроизведение после N минут неактивности
Выключение после неактивности и активного действия это немного разные фичи.
Вы никогда ничего не слушали на ночь?
То что я слушаю (независимо от времени суток) я выключаю сам, когда заканчиваю слушать. Я либо еще хочу чтобы что-то играло, либо уже не хочу, причем первый период сознательный, и завершающее действие в него хорошо вписывается. Решительно не понимаю, зачем пытаться отмерять 20 минут и затем подпирать все это костылями.
Если «в среднем» я засыпаю за 15 минут
Это среднее время засыпания ничуть не точнее среднего времени ухода спать. Сегодня вы устали и заснули за 5 минут, и вас будит ваш подкаст «пока вы переворачиваетесь на другой бок», а завтра встанете лишний раз попить воды, отвлечетесь на разговор у холодильника, и будет уже 20, и фактически ложиться вы будете уже в тишине.
Выключение после неактивности и активного действия это немного разные фичи.
Автор эмулирует неактивность с помощью банального таймаута.
То что я слушаю (независимо от времени суток) я выключаю сам, когда заканчиваю слушать. Я либо еще хочу чтобы что-то играло, либо уже не хочу, причем первый период сознательный, и завершающее действие в него хорошо вписывается.
Все люди разные. Кто-то любит засыпать под бубнёж и не хочет «просыпаться», чтобы его выключить.
Это среднее время засыпания ничуть не точнее среднего времени ухода спать.
Вот это не совсем понял.

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

А вот если встал в туалет или попить воды, и при этом еще и поговорил с кем-то, то можно и вообще до утра не уснуть потом…

При таком раскладе можно снова захотеть подкаст послушать, чтобы под него заснуть. Как в этом случае справится планировщик — непонятно.
А вот таймер выключения справится прекрасно.
Автор эмулирует неактивность с помощью банального таймаута.
Автор ничего не эмулирует. Фишка «выключения после неактивности» в том что ослеживается активность и таймер обновляется. У автора ничего не отслеживается и не обновляется.
Кто-то любит засыпать под бубнёж и не хочет «просыпаться», чтобы его выключить.
Правильное решение такого кейса как раз отслеживание неактивности плеером, причем на телефоне, к которому не нужно будет вставать если не успел заснуть.
Если просто перевернулся на другой бок и при этом проснулся — желательно, чтобы было темно и тихо, тогда сразу же снова усну.
Ну так оно не тихо, потому что таймер стоит на 15 минут, а заснули вы за 5. А еще через пять перевернулись на другой бок.
А вот таймер выключения справится прекрасно.
Ну да, надо всего лишь подойти к компу, включить его, включить проигрывание, и заново запустить батник. Именно то чем хочет заниматься человек, который собирается лечь спать со второй попытки.
Эта ветка зашла куда-то не туда, поэтому больше писать здесь не буду.

Изначальный комментарий, на который я отвечал -«Автор, изучи Планировщик заданий, пожалуйста».

Я считаю, что планировщик не подходит для решения задачи автора.

Сценарий 1. Выключать компьютер каждый день в 23:00, вне зависимости от активности на нём. Использование планировщика я считаю хорошим решением.

Сценарий 2 (от автора статьи). Выключать компьютер через 20 минут после того, как отошёл от него, вне зависимости от времени суток, может быть утром, вечером, днём ночью.
В данном случае, я считаю, что планировщик не подходит совершенно, а батник позволяет эту задачу решить.

Остальное, обсуждаемое выше, вроде
— оптимальности написания батника
— использования компьютера, а не мобильного телефона или плейера
— умного алгоритма отслеживания активности
— нормализации графика сна
мне обсуждать не интересно.

Мой поинт был «в сценарии автора статьи планировщик задач не применим, так как батник НЕ запускается по расписанию». Всё.

Засим откланиваюсь.

А можно еще ложиться всегда строго в определённое время!

UFO just landed and posted this here
Написал подобный батник, который уводит компьютер в сон через час после запуска, использую для того чтобы включить сериал и если я засну, то компьютер не будет прожигать электричество шумя кулерами и уйдёт в сон.
Итого программа заняла 73 байт

На самом деле… ноль?


Кстати, а почему ноль, а не один кластер?
UFO just landed and posted this here
Это лайфхак NTFS: файлы размером в один кластер хранятся прямо в MFT, в записи об этом файле.

Не очень хорошо понимаю, зачем вообще выключать компьютер? Это ж потом опять запускать все программы, визуальные студии, браузёры с сотней вкладок, блокноты, торренты, косынку, проигрывателей песен и фильмов. Наверное, нужно просто нагрузить жёсткий диск операциями, чтоб быстрее износился.

Ещё можно добавить интерактива в батник )
echo off
set /p xtime=«Через сколько минут выключить? Введите значение и нажмите Enter: „
set /a xtime=%xtime%*60
shutdown /s /t %xtime%
Но если Вам нужно именно выключить, то всё будет еще короче, а именно 47 байт. Просто вторая строка будет выглядеть:

shutdown -s -t 00

Зачем заменять вторую строку, если вы сами же в ней и указываете параметр -t. Просто укажите «shutdown -s -t 1200» без первой строки. Таким образом «программа» стала еще короче.
Спасибо за подсказку. Вы совершенно правы. Жаль статья вышла на 10 лет позже чем я её написал)))
Sign up to leave a comment.

Articles