CMD/BAT - Обмен данными между BAT-скриптами не через файл
-
ioSIS
CMD/BAT - Обмен данными между BAT-скриптами не через файл
Здравствуйте!
Имеется два скрипта, один запущен как служба, а второй должен получать от него инфу и выводить пользователю. Есть ли способ обмена информацией между ними?
Краем уха слышал, что есть много технологий типа Пайпов, Сокетов, COM и др. Но не знаю, что из этого легче реализовать батниками и куда копать.
Имеется два скрипта, один запущен как служба, а второй должен получать от него инфу и выводить пользователю. Есть ли способ обмена информацией между ними?
Краем уха слышал, что есть много технологий типа Пайпов, Сокетов, COM и др. Но не знаю, что из этого легче реализовать батниками и куда копать.
-
megaloman
Re: CMD/BAT - Обмен данными между BAT-скриптами не через файл
Цитата ioSIS:
Имеется два скрипта, один запущен как служба, а второй должен получать от него инфу и выводить пользователю.
При такой постановке второй не нужен, пусть первый сообщает.
Имеется два скрипта, один запущен как служба, а второй должен получать от него инфу и выводить пользователю.
CMD/BAT - Обмен данными между BAT-скриптами не через файл
При такой постановке второй не нужен, пусть первый сообщает.
CMD/BAT - [решено] Отправка сообщений на сетевые ПК в домене
. Либо первый скрипт запускает второй с данными в параметрах.-
alpap
Re: CMD/BAT - Обмен данными между BAT-скриптами не через файл
Цитата megaloman:
При такой постановке второй не нужен, пусть первый сообщает. Буквально накануне что-то похожее обсуждалось. Либо первый скрипт запускает второй с данными в параметрах.
Не получится. Первый скрипт запускается от SYSTEM, а второй от локального пользователя.
Идеально было бы так: второй скрипт висит в цикле и ждет данные от первого. Получил, распарсил, выполнил команду.
При такой постановке второй не нужен, пусть первый сообщает. Буквально накануне что-то похожее обсуждалось. Либо первый скрипт запускает второй с данными в параметрах.
CMD/BAT - Обмен данными между BAT-скриптами не через файл
Не получится. Первый скрипт запускается от SYSTEM, а второй от локального пользователя.
Идеально было бы так: второй скрипт висит в цикле и ждет данные от первого. Получил, распарсил, выполнил команду.
-
ioSIS
Re: CMD/BAT - Обмен данными между BAT-скриптами не через файл
А в чём проблема для SYSTEM выводить информацию пользователю?
-
DJ Mogarych
Re: CMD/BAT - Обмен данными между BAT-скриптами не через файл
А в чём проблема для SYSTEM выводить информацию пользователю?
-
ioSIS
Re: CMD/BAT - Обмен данными между BAT-скриптами не через файл
Цитата DJ Mogarych:
А в чём проблема для SYSTEM выводить информацию пользователю?
Так надо не просто выводить, а обрабатывать, и выполнять какие-либо действия на ее основе.
А в чём проблема для SYSTEM выводить информацию пользователю?
Так надо не просто выводить, а обрабатывать, и выполнять какие-либо действия на ее основе.
-
DJ Mogarych
Re: CMD/BAT - Обмен данными между BAT-скриптами не через файл
Нет конкретики, так можно долго беседовать ни о чём, делая какие-то намёки на призрачную схему.
-
ioSIS
Re: CMD/BAT - Обмен данными между BAT-скриптами не через файл
Прошу прощения, если вопрос прозвучал слишком туманно.
Вот конкретный случай, где это будет использовано:
Есть ноутбук на даче, где часто выключают свет. У ноутбука своей батареи нет, планируется подключать его к автомобильному аккумулятору через переходник 12в -> 19в. Напряжение на аккумуляторе контролируется Arduino, которая раз в 5 секунд шлет данные через COM-порт.
Скрипт, запущенный как служба, читает уровень заряда и, при его снижении ниже порога, посылает команду на гибернацию.
Стоит задача сообщить уровень заряда пользователю. Для этого при входе в систему запускается другой скрипт, который в бесконечном цикле должен получать данные от службы и выводить их в консоль.
Вот скрипт-служба:
Код:
Теперь нужно придумать способ регулярно передавать значение _batterylevel в скрипт пользователя.
Вот конкретный случай, где это будет использовано:
Есть ноутбук на даче, где часто выключают свет. У ноутбука своей батареи нет, планируется подключать его к автомобильному аккумулятору через переходник 12в -> 19в. Напряжение на аккумуляторе контролируется Arduino, которая раз в 5 секунд шлет данные через COM-порт.
Скрипт, запущенный как служба, читает уровень заряда и, при его снижении ниже порога, посылает команду на гибернацию.
Стоит задача сообщить уровень заряда пользователю. Для этого при входе в систему запускается другой скрипт, который в бесконечном цикле должен получать данные от службы и выводить их в консоль.
Вот скрипт-служба:
Код:
Код: Выделить всё
@ ECHO OFF
MODE COM5 BAUD=9600 PARITY=n DATA=8 > nul
SET _batterylowlevel=1060
:start
FOR /F "usebackq" %%i IN (`SORT^<COM5`) DO ( SET _batterylevel=%%i)
IF %_batterylevel% lss %_batterylowlevel% (SHUTDOWN /H)
TIMEOUT /t 1 /nobreak
GOTO startТеперь нужно придумать способ регулярно передавать значение _batterylevel в скрипт пользователя.
-
alpap
Re: CMD/BAT - Обмен данными между BAT-скриптами не через файл
... (msg * %_batterylevel%& SHUTDOWN /H)
-
ioSIS
Re: CMD/BAT - Обмен данными между BAT-скриптами не через файл
Цитата alpap:
... (msg * %_batterylevel%& SHUTDOWN /H)
Так надо постоянно передавать уровень заряда, а не только в момент разрядки. Да и msg вылазит поверх всех окон, а надо в фоне, чтоб пользователь, когда ему надо, сам мог посмотреть заряд.
... (msg * %_batterylevel%& SHUTDOWN /H)
Так надо постоянно передавать уровень заряда, а не только в момент разрядки. Да и msg вылазит поверх всех окон, а надо в фоне, чтоб пользователь, когда ему надо, сам мог посмотреть заряд.