Программа nhsms позволяет обрабатывать входящие смс сообщения различными способами, в том числе, командными файлами (CMD). Командные файлы получают параметры СМС через переменные среды (рекомендованный способ) или параметры командной строки. В командном файле можно выполнить различные действия, такие как сохранение в файл или в базу данных, перезапуск компьютера и т.п.
Чтобы программа nhsms считала смску и передала её на обработку в командный файл, необходимо добавить строку CommandLine в группу Read конфиг файла, это можно сделать непосредственно в файле или с помощью редактора конфигурации на закладке Входящие сообщения:
[Read] CommandLine=cmd.exe /u /c sms_append2list.cmd
Обратите внимание, необходимо перезапустить nhsms, чтобы применить изменения конфиг файла.
Несмотря на то, что можно написать просто CommandLine=sms_append2list.cmd
, и при этом командный файл будет запущен, рекомендуется использовать полную запись CommandLine=cmd.exe /u /c sms_append2list.cmd
, т.к. при этом можно указать дополнительные параметры запуска командного файла, например, /u задаёт Unicode (вместо OEM) – это удобнее при сохранении в файл.
Например, если мы составим командный файл sms_append2list.cmd
для добавления считанного сообщения в текстовый файл-список (одна смска на строку):
@echo off echo %sms_type% %sms_messagetext% >> sms-incoming.txt
то запись в файл будет выполнена в Unicode.
Другой пример обработки входящих сообщений с записью каждого сообщения SMS-DELIVER в отдельный файл, именуемый временем смски и номером отправителя, например, 20130802113458-79012223344.txt
Добавляем строку запуска в конфиг файл, сохраняя запуск первого CMD файла – теперь оба CMD файла будут запущены при считывании смс:
[Read] commandline=cmd.exe /u /c sms_append2list.cmd commandline=cmd.exe /u /c sms_deliver2file.cmd
Сам командный файл sms_deliver2file.cmd
:
@echo off rem Выходим, если это сообщение другого типа if not "%sms_type%" == "SMS-DELIVER" exit /b 0 rem Сохраняем текст сообщения в файл echo %sms_messagetext% > %sms_senttime_year%%sms_senttime_month%^ %sms_senttime_day%%sms_senttime_hour%%sms_senttime_min%%sms_senttime_sec%-^ %sms_sender%.txt
В результате принятые сообщения SMS-DELIVER будут сохранены в текстовые файлы и могут быть обработаны другими инструментами (сообщения SMS-STATUS-REPORT будут пропущены этим командным файлом).
См. также
Озвучивание входящих смс сообщений
Сохранение входящих смс в Excel