CMD/BAT - Обмен данными между BAT-скриптами не через файл

Аватара пользователя
ioSIS

CMD/BAT - Обмен данными между BAT-скриптами не через файл

Сообщение ioSIS »

Здравствуйте!

Имеется два скрипта, один запущен как служба, а второй должен получать от него инфу и выводить пользователю. Есть ли способ обмена информацией между ними?



Краем уха слышал, что есть много технологий типа Пайпов, Сокетов, COM и др. Но не знаю, что из этого легче реализовать батниками и куда копать.
Аватара пользователя
megaloman

Re: CMD/BAT - Обмен данными между BAT-скриптами не через файл

Сообщение megaloman »

Цитата ioSIS:



Имеется два скрипта, один запущен как служба, а второй должен получать от него инфу и выводить пользователю.
CMD/BAT - Обмен данными между BAT-скриптами не через файл




При такой постановке второй не нужен, пусть первый сообщает.
CMD/BAT - [решено] Отправка сообщений на сетевые ПК в домене
. Либо первый скрипт запускает второй с данными в параметрах.
Аватара пользователя
alpap

Re: CMD/BAT - Обмен данными между BAT-скриптами не через файл

Сообщение alpap »

Цитата megaloman:



При такой постановке второй не нужен, пусть первый сообщает. Буквально накануне что-то похожее обсуждалось. Либо первый скрипт запускает второй с данными в параметрах.
CMD/BAT - Обмен данными между BAT-скриптами не через файл




Не получится. Первый скрипт запускается от SYSTEM, а второй от локального пользователя.

Идеально было бы так: второй скрипт висит в цикле и ждет данные от первого. Получил, распарсил, выполнил команду.
Аватара пользователя
ioSIS

Re: CMD/BAT - Обмен данными между BAT-скриптами не через файл

Сообщение ioSIS »

А в чём проблема для SYSTEM выводить информацию пользователю?
Аватара пользователя
DJ Mogarych

Re: CMD/BAT - Обмен данными между BAT-скриптами не через файл

Сообщение DJ Mogarych »

А в чём проблема для SYSTEM выводить информацию пользователю?
Аватара пользователя
ioSIS

Re: CMD/BAT - Обмен данными между BAT-скриптами не через файл

Сообщение ioSIS »

Цитата DJ Mogarych:



А в чём проблема для SYSTEM выводить информацию пользователю?



Так надо не просто выводить, а обрабатывать, и выполнять какие-либо действия на ее основе.
Аватара пользователя
DJ Mogarych

Re: CMD/BAT - Обмен данными между BAT-скриптами не через файл

Сообщение DJ Mogarych »

Нет конкретики, так можно долго беседовать ни о чём, делая какие-то намёки на призрачную схему.
Аватара пользователя
ioSIS

Re: CMD/BAT - Обмен данными между BAT-скриптами не через файл

Сообщение ioSIS »

Прошу прощения, если вопрос прозвучал слишком туманно.

Вот конкретный случай, где это будет использовано:

Есть ноутбук на даче, где часто выключают свет. У ноутбука своей батареи нет, планируется подключать его к автомобильному аккумулятору через переходник 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 в скрипт пользователя.
Аватара пользователя
ioSIS

Re: CMD/BAT - Обмен данными между BAT-скриптами не через файл

Сообщение ioSIS »

Цитата alpap:



... (msg * %_batterylevel%& SHUTDOWN /H)



Так надо постоянно передавать уровень заряда, а не только в момент разрядки. Да и msg вылазит поверх всех окон, а надо в фоне, чтоб пользователь, когда ему надо, сам мог посмотреть заряд.
Ответить

Вернуться в «Скриптовые языки администрирования Windows»