Категория: Разработка

BAT-файл: разные действия в зависимости от времени запуска

Недавно столкнулся с небольшим кейсом по автоматизации, если не вдаваясь в детали, то заказчик хочет чтобы один и тот же сценарный файл (BAT) выполнял разные действия в зависимости от того, в какой временной промежуток он запущен. Предположим, что временные интервалы у нас 21:00-9:00 (условно ночь) и 9:00-21:00 (условно день). Как известно, в bat-файлах оператора OR нет, но вместо этого можно сделать конструкцию из двух IF таким образом, что по результатам условий (которые просто можно перечислить построчно) мы присвоим булево значение некоему флагу, а потом, в зависимости от значения флага, перейдем через GOTO на разные секции и выполним разные действия.

ЧИТАТЬ ДАЛЕЕ


Кастомная микросборка WinXP

Несмотря на то, что прошло уже более 20 лет, мне все еще нравится Windows XP. Нравится её быстродействие, нравится отсутствие всяких ограничений (которых хватает в Windows 10/11) и многие другие вещи. Конечно, использовать Windows XP на современном железе — дело по многим причинам сомнительное, однако я частенько с удовольствием создаю виртуальные машины под управлением Windows XP для различного рода проектов — а в качестве установочного образа использую специальную самопальную сборку. Нет, это не какой-нибудь ZverCD, где стараниями какого-то «сборщика Васяна» стабильность работы отсутствует по умолчанию, а количество «интегрированного» софта превышает все мыслимые пределы; отнюдь, я хочу показать крайне минималистичный образ из которого вырезано практически все.

ЧИТАТЬ ДАЛЕЕ


SIP звонок через GET-запрос

На компьютерах под управлением MS Windows я обычно пользуюсь SIP-клиентом PhonerLite. Недавно вышло обновление этой замечательной звонилки — теперь она оснащена Telnet-сервером, к ней можно подключаться удаленно и отдавать такие команды, как «положить трубку», «ввести номер в наборное поле», «начать дозвон» и другие. А тут как раз один из заказчиков обратился с запросом возможности совершать SIP звонок на GSM-контроллер нажатием на кнопку в HTML-странице — в общем, все звезды сошлись.

Вот маленькая самописная утилита, которая с одной стороны принимает GET-запросом номер абонента, а с другой стороны — подключается к PhonerLite через Telnet и отдает последнему команду на набор ранее полученного номера. Никаких фреймворков не требует, в конфигурационном файле задаются некоторые параметры (порт на котором стартует веб-сервер, да реквизиты Telnet на случай, если утилита и PhonerLite запущены на разных устройствах). Возможно, кому-то она сослужит такую же хорошую службу, как и мне.


Консольный SIP-клиент PJSUA для Win64

Для одного из проектов возникла потребность в софтфоне, управляемом из командной строки, сам проект, разумеется, для MS Windows. Почти с десяток разных линуксоидов-телефонистов говорили, что для MS Windows такого нет, но это не совсем так. Опенсорсный SIP-клиент PJSUA собирался в т.ч. для MS Windows, но ссылки на бинарные сборки давным-давно стухли, поэтому я попросил своего хорошего друга скомпилировать исходники заново — держите бинарник PJSUA для Win64, собран с помощью VC14 (и может потребовать соответствующих распространяемых наборов библиотек).


Псевдоперехват нажатия PrtScr в Windows

В Windows 7 есть такая утилита для работы с областью скриншота — «Ножницы» (Snipping Tool). И хоть лично я этой утилитой толком не пользовался, но многим из моих знакомых она приходилась по нраву. Со временем в Windows 10 этот инструмент претерпел некоторые изменения, появились всплывающие сообщения (на закрытие которых каждый раз приходилось терять время, фактически — лишний клик мышкой) призывающие перейти на другой фирменный инструмент взамен удаляемых из состава Windows «Ножниц». Обычно все ставят сторонние приложения которые и нажатие клавиши PrtScr перехватят, и полученный скриншот в какую-нибудь помойку зальют, но в коммерческой среде применимость подобного ПО под большим вопросом. По просьбе одного человека я сделал простое альтернативное решение, оно срабатывает по нажатию на клавишу Print Screen.

ЧИТАТЬ ДАЛЕЕ


Вывод в Memo вместо командной строки

Иной раз в процессе разработки ПО или же автоматизации каких-либо процессов сталкиваюсь с необходимостью использовать консольные (без графического интерфейса) версии программ и утилит в качестве вспомогательных по отношению к «главному» приложению (которое вполне себе имеет GUI). Ниже я напишу шпаргалку (больше для самого себя) по редиректу вывода из командной строки в текстовое поле Memo.

ЧИТАТЬ ДАЛЕЕ


Принудительная смена DUID на Mikrotik

Один из заказчиков с инфраструктурой на базе Mikrotik обратился за помощью в решении одной проблемы. На его центральном роутере был переназначен вручную MAC-адрес (так было нужно), казалось бы, дело совсем нехитрое. Но когда заказчик начал смотреть в сторону IPv6, то оказалось, что DUID содержит его прежний MAC, а не вновь заданный. Более того, согласно спецификациям, пользователь не может задавать DUID самостоятельно. Но все решаемо, ведь дальше действовать будем мы.

ЧИТАТЬ ДАЛЕЕ