Как заставить mosquitto_sub печатать ТОЛЬКО текущее сообщение при подписке на одну тему - PullRequest
0 голосов
/ 14 мая 2018
mosquitto_sub.exe -h host-p port -t topic-P password -u username  > log_file.txt

Используя эту командную строку, все сообщения сохраняются в log_file.txt, но как сохранить только последнее сообщение в файл журнала.Насколько я знаю> работает для перезаписи файла, используя это только в начале, он перезаписывает текстовый файл, после чего он начинает добавлять все сообщения в файл.

Ответы [ 2 ]

0 голосов
/ 14 мая 2018

Вы можете встроить команду в цикл for / f, обрабатывая строку вывода, перезаписывая содержимое файла

@Echo off
for /f "delims=" %%A in ('
  mosquitto_sub.exe -h host -p port -t topic -P password -u username
') Do @Echo(%%A>log_file.txt
0 голосов
/ 14 мая 2018

mosquitto_sub имеет параметр командной строки -C для управления количеством сообщений, которые должны быть получены до того, как они будут созданы.

mosquitto_sub.exe -h host-p port -t topic -P password -u username -C 1 > log_file.txt

От mosquitto_sub man page

-C

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

Действительно ужасный цикл:

@echo off
:top:
mosquitto_sub.exe -h host-p port -t topic -P password -u username -C 1 > log_file.txt
goto top
...