|
Помогите разобраться с батником | ☑ | ||
---|---|---|---|---|
0
Enlighted
18.05.15
✎
12:17
|
Вот написал сие чудо:
@echo off FOR /F "tokens=1* delims==" %%i IN (C:\SMS\snd.txt) DO ^ (c:\SMS\CMD2PHONE -P COM13 -S 9600 -W 30 ^ -L -LF "C:\SMS\log.txt" -M "tel No %s" %%i %%j :test c:\windows\system32\tasklist|find /c "cmd2phone" > c:\SMS\temp.tmp set /p fi="" < c:\SMS\temp.tmp del c:\SMS\temp.tmp if %fi% == 0 (ping -n 5 localhost > nul goto :test) ) C:\windows\system32\msg.exe * Программа рассылки закончила работу. Идея заключается в том, что он разбирает входной файл на 2 подстроки передаёт программе в качестве параметров и следом идёт цикл с пингом в котором он проверяет не закончился ли процесс вызванный прошлой интерацией, и по завершении его должен продолжить разбор входного файла. На деле выдаёт вот что: Синтаксическая ошибка в имени файла, имени папки или метке тома. Синтаксическая ошибка в имени файла, имени папки или метке тома. Синтаксическая ошибка в имени файла, имени папки или метке тома. Синтаксическая ошибка в имени файла, имени папки или метке тома. ^CЗавершить выполнение пакетного файла [Y(да)/N(нет)]? y зависает на последней строке входного файла прерывается только ^c формат входного фалаа вот: 0555303501=Уважаемый ФИО, блаблабла 0707611744=Уважаемый ФИО, блублублу 0705235959=Уважаемый ФИО, блиблибли 0558888388=Уважаемый ФИО, блёблёлбё |
|||
1
Enlighted
18.05.15
✎
12:20
|
упс пропустил ошибку в строке if %fi% == 0 (ping -n 5 localhost > nul надо поставить == 1 теперь файл прерывается и заканчивается но
Синтаксическая ошибка в имени файла.... так и осталась |
|||
2
Garykom
гуру
18.05.15
✎
12:44
|
забаньте плиз спамера...пока его фас не того...
|
|||
3
Enlighted
18.05.15
✎
12:51
|
(2) :) Это список клиентов нашей фирмы а не кого попало.
Частично разобрался в строке FOR /F "tokens=1* delims==" %%i IN (C:\SMS\snd.txt) DO ^ надо скобку перед крышкой ставить (^ а не после крышки. всем спасибо что вы есть. |
|||
4
Garykom
гуру
18.05.15
✎
12:55
|
Вот скажите Вы стол дома всегда зубной щеткой моете?
|
|||
5
Garykom
гуру
18.05.15
✎
12:56
|
(4)+ форум по 1С ну так и сделать на 1С эту фигню через КомандаСистемы()... если надо по расписанию то в 1с это во всех можно...
|
|||
6
Enlighted
18.05.15
✎
13:13
|
(5) 1с формирует список и запускает батник, и потом работает себе отдельно и ничего не отслеживает. Этим уже занимается батник.
|
|||
7
Enlighted
18.05.15
✎
14:17
|
Народ всем спасибо всё заработало. просто дело в скобке :) Извините за беспокойство
|
|||
8
Garykom
гуру
18.05.15
✎
14:21
|
(6) а как понять и где произошел сбой? к примеру $ кончились и часть смс не ушла? как это батник поймет и в 1С сообщит?
у Вас может и неважно по своим сотрудникам, но если рассылка для клиентов то "недослать" как и "переслать" смс-ки это чревато... |
|||
9
Enlighted
18.05.15
✎
18:42
|
(8) Батник никак не поймёт и в 1с не сообщит зато пишется лог файл который проверяется после того как на экране появляется msg * блабла. И если какието номера не отправились сотрудник будет пробивать их. Возможно номера не существуют уже или записаны не правильно и прочие другие капризы сети.
Народ! Проблема обострилась! При формировании текстового файла и запуска батника вручную всё работает на ура. При запуске батника из 1с он не пишет лог файл, не выводит сообщение msg на экран. Дал полный доступ "всем" на папку c:\sms не помогло. В батнике специально написаны полные пути чтобы всё вызываемое работало в одной папке. |
|||
10
Garykom
гуру
18.05.15
✎
18:50
|
(9) как бы у нас из 1С по api отправляется
попробуй 1Script |
|||
11
Garykom
гуру
18.05.15
✎
18:58
|
(9) да по логам неудобно выходит, у меня просто номера выпадают в базе 1С в разные списки по виду ошибки
и можно либо оптом заново выслать или да сделать проверку, может номера уже нет |
|||
12
Enlighted
18.05.15
✎
19:07
|
(11) А у вас такая же проблема ? вы тоже хотите слать СМС из 1с 7.7?
|
|||
13
Enlighted
18.05.15
✎
19:08
|
(11) Это временное решение, планируется полная переписка системы под 1с 8.3 с дополнительными фичами, а пока лиш бы работало
|
|||
14
Enlighted
18.05.15
✎
19:08
|
(11) И да как вы в 1с решили проблему с поиском модема (к какому порту он подключен)
|
|||
15
Jump
18.05.15
✎
20:07
|
(9)Это правильно.
Когда вы вручную запускаете батник вы запускаете его из конкретной папки, и от имени своего пользователя. А когда запускаете из 1с то скорее всего запускаете от имени системного пользователя, и из системной директории. То что не пишет лог странно. Вы точно уверены что путь к логу прописан полностью, а не привязан к директории запуска? И права на запись есть в эту директорию? |
|||
16
Garykom
гуру
18.05.15
✎
20:33
|
(12) у меня все прекрасно отправляется из самой 1С и ответ получается через api smspilot
нам буквенное имя нужно поэтому модема не подходит |
|||
17
Enlighted
18.05.15
✎
20:46
|
(15)
FOR /F "tokens=1,* delims==" %%i IN (C:\SMS\snd.txt) DO (^ c:\SMS\CMD2PHONE -P %1 -S 9600 -W 15 ^ -L -LF "C:\SMS\%date:~-10%.txt" -M "СМС на номер %%i" %%i %%j :test c:\windows\system32\tasklist|find /c "cmd2phone" > C:\SMS\temp.tmp set /p fi="" < C:\SMS\temp.tmp del C:\SMS\temp.tmp if %fi == 1 (^ ping -n 5 localhost > nul goto :test) ) C:\windows\system32\msg.exe * Рассылка завершена |
|||
18
Enlighted
18.05.15
✎
20:47
|
блин да как тут выделить код чтобы он нормально смотрелся а не как текст и пробелы в начале поставил уже не попогло
|
|||
19
Enlighted
18.05.15
✎
20:51
|
(15) Вообще все вызываемые в батнике программы указанны с путями, доступ к папке c:\SMS дан пользователю "Все" полный
|
|||
20
Enlighted
18.05.15
✎
20:54
|
|
|||
21
Enlighted
18.05.15
✎
20:55
|
Код код |
|||
22
Enlighted
18.05.15
✎
21:00
|
Проблема частично решилась путём переноса файла msg.exe в папку c:\SMS\
Однако всёравно при ручном сратре лог пишется а при сратре из 1с лог не пишется |
|||
23
Jump
18.05.15
✎
21:07
|
(22)Про какой лог идет речь? Все то что выводит батник в процессе работы?
Как запускается батник? batnik.bat >C:\Directory\logfile.txt Так? |
|||
24
Enlighted
18.05.15
✎
21:14
|
(23) запускать батник пробовал двумя способами:
оба варианта не выдают лога лог файл пишет запускаемый в батнике
Как раз командой -L -LF "имялогфайла" создаётся логфайл. |
|||
25
Garykom
гуру
18.05.15
✎
21:55
|
(24) скорее всего проблема с путями
сделай в батнике смену тек каталога через cd чтобы прога поняла куда писать лог т.е. оно может и пишет тока хз куда |
|||
26
Enlighted
18.05.15
✎
22:07
|
(25) Не помогло такая же ерунда, не пишет лог и всё тут, при ручном запуске всё работает
|
|||
27
Garykom
гуру
18.05.15
✎
22:13
|
(26) винда какая? не сервер 1С надеюсь?
от имени админа запускать? |
|||
28
Garykom
гуру
18.05.15
✎
22:13
|
режим совместимости? может для батника?
|
|||
29
Enlighted
18.05.15
✎
22:24
|
(28) Не помогло, также установка галочки запускать от имени администратора не помогла.
При проверке диспетчером задач видно что и c CMD и CMD2Phone запускается из под текущего пользователя |
|||
30
Enlighted
18.05.15
✎
22:36
|
Вот что интересно при вызове непосредственно из 1с только программы CMD2PHONE с этими же ключами, лог файл пишется
|
|||
31
Jump
19.05.15
✎
02:56
|
(26)Я говорю про отладочный лог. Т.е все то что выводит батник во время работы.
По нему и смотри в каком месте он ругается. |
|||
32
ЧеловекДуши
19.05.15
✎
07:02
|
(0) "Господи, изыди... !!!"
Ажас, уже системные администраторы в программисты подались :) |
|||
33
ЧеловекДуши
19.05.15
✎
07:03
|
(29) Обработку народу покажи. Может ты та запускаешь все со стороны сервера.
|
|||
34
ЧеловекДуши
19.05.15
✎
07:04
|
(30) Это говорит о кривости ваших рук, парси свой код. Может в запятой ошибся :)
Еще раз прочти документацию... Или дай нам почитать ;) |
|||
35
ЧеловекДуши
19.05.15
✎
07:05
|
(31) Для этого Автор должен избавиться от команды "@echo off"
И после каждой манипуляции прописать команду "Pause 0" |
|||
36
Маратыч
19.05.15
✎
07:13
|
(32) А что такого? Я семь лет админил, от хелпдеска до начдита, прежде чем в программирование уйти. Хотя лет с 12 именно программирование изучал и на микроконтроллерах всякие поделки лепил. На рынке тогда были больше востребованы эникеи, чем "начинающие погромисты" без опыта работы.
З.Ы. СМС-рассылки - зло, даже для клиентов. Почта же есть. |
|||
37
Хоменко Валерий
19.05.15
✎
09:54
|
(36) "СМС-рассылки - зло, даже для клиентов. Почта же есть."
Не, номера телефонов клиенты оставляют легко, а почту труднее, наверное это более интимно... :) |
|||
38
Маратыч
19.05.15
✎
09:56
|
(37) Хы :) Я всегда думал, что наоборот. В конце концов, на особо доставучие письма можно не отвечать или в спам засунуть, а вот постоянные звонки надоедливого контрагента задолбают быстро.
|
|||
39
Jump
19.05.15
✎
12:22
|
(37)Ну почту далеко не все помнят.
|
|||
40
Jump
19.05.15
✎
12:24
|
(35)Ну эхо нужно включить понятно.
А паузу зачем? Это ж не на экране сообщения успевать прочитать, а в логе смотреть. |
|||
41
Jump
19.05.15
✎
12:25
|
А вообще пайтон быстрее выучить, чем такими темпами этот велосипед отлаживать.
|
|||
42
Enlighted
19.05.15
✎
15:41
|
(31) (32) И всем предыдущим кого пропустил
код батника был слегка изменён вот он
а вот собственно вывод этого файла в консоль при ручном запуске:
Всё как надо создаёт лог файл и отправляет смс. |
|||
43
Enlighted
19.05.15
✎
15:42
|
При запуске его же из 1С (не консоль, локальная файловая база) лог не пишет хотя смс шлёт
|
|||
44
Enlighted
19.05.15
✎
15:45
|
Да и по поводу рассылки смс = зло, У нас в стране сохранилась базарная экономика, в отличии от России, и в связи с этим еще очень мало людей (клиентов) пользуются электронной почтой, а точнее заводят её им их дети, только для того чтобы зарегать своих родителей в соцсетях. А телефон они используют исправно. Плюс уведомление о том что у тебя выходит срок займа и начнутся штрафные проценты лучше всётаки получить по телефону
|
|||
45
Garykom
гуру
19.05.15
✎
17:05
|
ТС скажи у тебя один текст смс всем в списке?
|
|||
46
Enlighted
19.05.15
✎
21:16
|
(45) пример файла выше, но первое и последнее смс отсылаются на мобилу супервайзера с другими текстами, остальные текста типовые, и генерятся в зависимости от фио, даты, и суммы, и прочих моментов.
|
|||
47
Garykom
гуру
19.05.15
✎
21:32
|
(46) скажи у вас модем типа http://4pda.ru/forum/index.php?showtopic=582284 есть в продаже?
ЗЫ если есть то можно телефон/cmd2phone/батник выкинуть и через веб интерфейс смс-ки рассылать... ЗЗЫ для 1с это как засунуть файлик по фтп/самба скажем )) и в ответ лог скачать... |
|||
48
Garykom
гуру
19.05.15
✎
21:33
|
(45)(46) просто непонятно было зачем в цикле запускать, если можно просто указать файл с номерами
и да не может быть трабла тупая что консольная "cmd2phone" вызванная в цикле из батника просто глючит проверь без цикла как? |
|||
49
Enlighted
20.05.15
✎
06:43
|
(48) Запускал файл с номерами и текстами при ошибке программы рассылка прерывается, цикл доходит до конца списка вне зависимости от ошибок программы ли или сети.
Модемы такие есть но для конечных точек модем не должен быть устройством через которое можно выйти в интернет и прочее. |
|||
50
ЧеловекДуши
20.05.15
✎
06:46
|
(40) Что бы увидеть окошечко, до того как оно захлопнется :)
|
|||
51
Enlighted
20.05.15
✎
06:47
|
(47) Выложить как на фтп и забрать лог? Можно ссылку можно на реализацию или описание технологии?
|
|||
52
ЧеловекДуши
20.05.15
✎
06:49
|
Не могу понять, зачем ТС батник? Когда можно и так отправлять команды.
Список команд http://myfreeware.narod.ru/products/cmd2phone.htm |
|||
53
ЧеловекДуши
20.05.15
✎
06:49
|
+ [-LF|/LF <LogFile>] - установка пути к LOG-файлу (запоминается, можно указать только один раз)
|
|||
54
ЧеловекДуши
20.05.15
✎
06:50
|
+(52) Так же можно писать лог. В общем ТС сам себе буратино
|
|||
55
ЧеловекДуши
20.05.15
✎
06:50
|
+ Пример с логом
CMD2PHONE -P COM1 -S 115200 -SC +79262909090 -L -LF "C:\Program Files\VD Soft\SMS.LOG" +79101234567 Это тестовое сообщение! |
|||
56
Enlighted
20.05.15
✎
06:53
|
(55) Я же выше написал когда скармливаешь cmd2phone список, периодически возникают ошибки модема или сети, и программа отправки прерывается. А начать с момента на котором она остановилась гораздо сложнее чем запускать команду для каждого номера в отдельности. Кого в логе нет, тому еще раз пошлём
|
|||
57
ЧеловекДуши
20.05.15
✎
06:55
|
(56) Какой список?
Зачем список? Одно сообщение, один телефон. |
|||
58
ЧеловекДуши
20.05.15
✎
06:56
|
+(56) Начать с момента, где остановилось, куда проще.
Если отправлять в цикле и помнить последний отправленный номер, но уже в 1С :) |
|||
59
Enlighted
20.05.15
✎
07:07
|
(55) да не даёт он лог, мануал зачитан, и по ключу и без ключа.
1) При вызове CMD2PHONE из 1с со списокм смс и телефонов, лог даёт, СМС шлёт, но она может прерваться в любом месте при ошибке модема или сети 2) При вызове БАТНИКА из 1с она шлёт СМС и не прерывается при ошибках, но не пишет лог 3) При ручном вызове БАТНИКА она и шлёт и пилет и не прерывается. Я не могу понять почему при вызове батника из 1с не сохраняет лог. Даже с ключем LF "C:\SMS\log.txt", как указанно в первом посте этой темы батник был с этим ключем. |
|||
60
ЧеловекДуши
20.05.15
✎
07:31
|
(59) >>> 2) При вызове БАТНИКА из 1с она шлёт СМС и не прерывается при ошибках, но не пишет лог
Я в твоем батнике не заметил вообще попытки писать лог средствами приложения. Ты тупо поток переправляешь в файлик. |
|||
61
Enlighted
20.05.15
✎
07:40
|
(60) Первый батник в первом посте, лог указан, батник в который сейчас работает уже в ндцатый раз изменён и в нем тоже есть строкf -LF
|
|||
62
ЧеловекДуши
20.05.15
✎
07:41
|
(61) Покажи лучше Код, откуда ты вообще вызываешь свой Батник?
|
|||
63
ЧеловекДуши
20.05.15
✎
07:46
|
(61) Попробуй вывести значение "%date:~-10%" есть предпосылка ,что действительно у тебя там кривое имя файла. :)
|
|||
64
ЧеловекДуши
20.05.15
✎
07:47
|
+... есть еще один совет. Измени расширение лога на "LOG" :)
|
|||
65
Enlighted
20.05.15
✎
08:10
|
(62)
шайтанама какая-то сегодня с утра стало лог писать. Без изменений каких-либо со вчерашнего дня, может машину перезагрузил глюк какой был. ЧеловекДуши спасибо за участие. Батник который в после (61) начал оставлять лог. как и хотелось с текущей датой в имени. Заинтересовал вариант "Garykom" (47) через веб интерфейс смс-ки рассылать... Поподробнее хотелось бы узнать. |
|||
66
Enlighted
20.05.15
✎
08:11
|
рюски реч меня пакинуль, жаль что тут посты править нельзя а то за ошибки стыдно.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |