
Код:
Код: Выделить всё
@echo off
setlocal enabledelayedexpansion
set telok=0
rem считываем файл входящих смс, берем последнюю строку
FOR /F "tokens=2,3 delims=;" %%c in (in_file.txt) do (
set number=%%c
set textsms=%%d
)
echo %number% %textsms%
rem считываем базу телефонов из файла base.txt и сравниваем номер входящего смс с номерами в базе
set i=0
for /F "tokens=1,2 delims=;" %%a in (base.txt) do (
set /A i=!i! + 1
set num!i!=%%a
set name!i!=%%b
IF %%a==%number% set telok=1
)
rem если номер совпал, то опять считываем базу телефонов из файла base.txt и формируем сообщение для каждого номера
IF %telok%==1 (
set i=0
for /F "tokens=1,2 delims=;" %%a in (base.txt) do (
set /A i=!i! + 1
set num!i!=%%a
set name!i!=%%b
echo %%a;M;R;%textsms% %number% >> out_file.txt
)
)
rem пауза на 60 сек и опять запускаем сначала всю программу
ping -n 60 127.0.0.1 > nul
call prog2.cmdосталось придумать как сделать чтобы программа знала что это новое сообщение во входящих
т.к. в этом виде она просто берет последнее сообщение из всех и формирует рассылку
и так каждые 60 сек

думал сделать внешний файл "count.txt" в котором хранить текущее количество входящих сообщений
и чтобы программа сравнивала число из файла с числом реальных сообщений в файле
мб есть более элегантные способы ?

.