Следующий скрипт показывает, как сохранить входящие смс сообщения, принятые программой nhsms, в файл Microsoft Excel. Скрипт сохраняет информацию о входящих сообщениях: номер отправителя, дату и время отправки, текст сообщения. Скрипт может быть использован для удобного просмотра и обработки входящих сообщений.
Скрипт будет вызываться для каждого принятого смс (как входящего сообщения, так и отчёта о статусе), для этого необходимо добавить его в конфигурацию программы nhsms.
Скрипт проверяет, что это входящее сообщение с текстом (его тип SMS-DELIVER), определяет число строк на рабочем листе Excel и добавляет в конец новую строку с номером отправителя, датой и временем отправки, текстом сообщения.
var wsh_shell = WScript.CreateObject("WScript.Shell"); // Проверяем, если это не входящее смс, то выходим var message_type = wsh_shell.ExpandEnvironmentStrings("%sms_type%"); if ( message_type != "SMS-DELIVER" ) WScript.Quit(0); var message_phone = wsh_shell.ExpandEnvironmentStrings("%sms_sender%"); var message_sent_time = wsh_shell.ExpandEnvironmentStrings("%sms_senttime%"); var message_text = wsh_shell.ExpandEnvironmentStrings("%sms_messagetext%"); // имя файла Excel var excel_file_name = wsh_shell.CurrentDirectory + "\\" + "incoming.xlsx"; // номер листа Excel var excel_worksheet_number = 1; var excel = WScript.CreateObject("Excel.Application"); var excel_workbook = excel.Workbooks.Open(excel_file_name); var excel_worksheet = excel_workbook.Worksheets(excel_worksheet_number); var row_number = excel_worksheet.Cells(excel_worksheet.Rows.Count,"A"). End(-4162).Row + 1; excel_worksheet.Cells(row_number,1).Value = message_phone; excel_worksheet.Cells(row_number,2).Value = message_sent_time; excel_worksheet.Cells(row_number,3).Value = message_text; // сохраняем и закрываем excel_workbook.Save(); excel_workbook.Close();
Для тестирования скрипта используем командный файл, устанавливающий значения переменных и запускающий наш скрипт:
@echo off set sms_type=SMS-DELIVER set sms_sender=79001234567 set sms_senttime=2014-05-30 13:05:48 set sms_messagetext=текст входящего сообщения cscript //nologo save-deliver-to-excel.js
Запустив командный файл несколько раз, видим входящие смс в файле Excel:
Все необходимые файлы (скрипт, тестовый командный файл, таблица Excel) можно загрузить по ссылке
Добрый день! Подскажите прописал скрипт в входящие сообщения, при запуске программы nhsms выдает scripts\save-deliver-to-excel\save-deliver-to-excel.js не является приложением win32
В конфигурации программы — входящие сообщения — команды обработки входю сообщений у меня прописан путь к этому скрипту так и лежит он там :
scripts\savexell\save-deliver-to-excel.js
Добрый день, надо запускать через cscript.exe или wscript.exe:
cscript //nologo save-deliver-to-excel.js
Подскажите открыл В конфигурации программы — входящие сообщения — команды обработки добавил новый как вы сказали
cscript //nologo save-deliver-to-excel.js
Но он так и не записывает ничего в Exekl
Я тогда отвечал с телефона, поэтому написал упрощенно, чтобы показать, что запускать надо через cscript.exe или wscript.exe.
Конечно, путь к файлу скрипта должен быть указан, то есть команда такая (если у вас путь
scripts\savexell\
):cscript //nologo scripts\savexell\save-deliver-to-excel.js
Можно заменить
cscript
наwscript
.Дальше, надо проверить через тестовый командный файл (описано в статье), что при его запуске происходит выполнение скрипта и добавление строк в Excel.
Сейчас из вашего описания не понял, в каком именно месте проблема — то ли скрипт не запускается, то ли строка не добавляется.
Проблема в правильном написании команды! Сегодня попробую и отпишу. Спасибо большое, что отвечаете!