Иногда бывает так, что нужно сделать что-то очень важное, но об этом просто забыть. Для этого существуют в сети всевозможные программы-напоминалки, всевозможные программы-стикеры.
Они выводят записанный заранее текст или вызывают установленный в настройках файл по истечении установленного времени. На самом деле существует бессчетное множество таких программ, платных и бесплатных. Однако подобную вещь можно сделать и средствами Windows. Кто сказал планировщик? Пусть замолчит недостойный! Ибо мы не ищем лёгких путей, ведь правда?
Итак, что же мы будем делать? А мы напишем .bat-файл для того, чтобы напоминал нам о чем-то важном:).
Чтобы написать нашу минипрограмму создадим сначала файл блокнота. В нем напишем:
@ echo off
Таким образом мы отключили вывод на экран самих команд – чтобы все было красиво и цивильно. Теперь немного оформления:
Color A
echo ===OLOLO===
С помощью первой команды мы установили цвет текста(хм, зеленый – наш любимый=)), а с помощью второй – вывели заголовок. Теперь нам надо задать переменные, в которых будут храниться заданные часы и минуты:
set /a e=%time:~0,2%
set /a q=%time:~3,2%
echo time:%time%
echo %e%
echo %q%
тут мы присваиваем параметры переменным для хранения часов и минут получаемых из системы, третьей строчкой выводим текущее время и значения переменных. Теперь нам надо загрузить из командной строки значения задаваемого таймера. Для этого пишем следующие строчки:
set /a w=%1
set /a v=%2
echo timer: %w%:%v%
pause
В конце выводим заданное время на экран и ставим программу на паузу – основной алгоритм будет запущен после нажатия любой клавиши. Итак, у нас есть показания системного таймера и время, полученное из командной строки. Что нам надо сделать дальше? Нам надо постоянно сравнивать значения таймера и переменных, и когда они совпадут – выйти из цикла и вызвать определенный файл. Для этого организуем цикл. Так как в здесь нет встроенных операторов цикла, используем операторы безусловного перехода goto. Что же у нас получится:
:1
set /a e=%time:~0,2%
set /a q=%time:~3,2%
if %e%==%w% (
if %q%==%v% goto 2
)
cls
echo ***********
echo =
echo ***********
cls
echo ***********
echo ==
echo ***********
cls
echo ***********
echo ===
echo ***********
cls
echo ***********
echo ====
echo ***********
cls
echo ***********
echo =====
echo ***********
cls
echo ***********
echo ======
echo ***********
cls
echo ***********
echo =======
echo ***********
cls
echo ***********
echo ========
echo ***********
cls
echo ***********
echo =========
echo ***********
cls
echo ***********
echo ==========
echo ***********
cls
echo ***********
echo ===========
echo ***********
goto 1
:2
В данном случае с помощью метки 1 мы организуем цикл, который периодически сравнивает значения переменных и системного таймера. Чтобы не расходовать зря системные ресурсы и не проверять слишком часто, а также визуализировать работу программы, забиваем цикл рисованием «кадров» полоски загрузки в псевдографике, кусками программы, отличающимися лишь количеством знаков «=». Внутри же цикла ставим сравнение переменных и системного счетчика. При положительном результате, вызывающее переход к метке 2, то есть за пределы цикла, что вызывает его завершение. Теперь ,когда время вычислено, нам нужно просто вызвать выбранный вами файл и поставить программу на паузу:
echo ENJOY!
start c:\ololo.txt
pause
exit
Теперь у вас есть свой собственный маленький напоминальщик! Чтобы его использовать, просто откомпилируем программу, заменив расширение .txt на .bat. Чтобы его запустить вбиваем в командную строку его название и время напоминания:
Потом он начинает работу:
И что у нас получается:
Итак, мы написали простой батник-напоминальщик. Но у этого встроеннго системного языка есть еще куча классных возможностей. Если вы этим заинтересовались, то попробуйте еще – вам понравится=)