Ad Widget

Collapse

Обработка строки userparameter

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • lamerrrr
    Member
    • May 2010
    • 60

    #1

    Обработка строки userparameter

    Господа, не варит голова :/ Наверное есть красивое решение...

    Задача: есть некая програмулина под windows она умеет писать текущие значения в текстовую табличку с разделением запятыми. Первая строка это имена значений, вторая собственно сами значения, вида:

    25082014, 044150, 25, ERR, OK, , , OK, 77.1 %, 22678 RPM, 12.01 W, 92.2 C, 1111, , END

    написал UserParameter:

    UserParameter=LabData[*],for /F "usebackq skip=1 delims=, tokens=$1" %g in ("C:\Program Files (x86)\Labs\Logs\log1.txt") do @echo %g

    И создаю элементы:

    LabData[3] - возвращает значение 25
    LabData[9] - возвращает 77.1 %
    LabData[10] - возвращает 22678 RPM
    и т.д.
    соответственно значения вида "77.1 %" и "22678 RPM" не передаются. Вот как бы не вынося обработку в внешний батник отформатировать вывод echo, что б он выдавал только циферку до пробела?
  • Jimson
    Senior Member
    • Jan 2008
    • 1327

    #2
    еще один split по пробелу?

    Comment

    • lamerrrr
      Member
      • May 2010
      • 60

      #3
      Ну это как бы понятно, но как его осуществить? вот так:

      for /F "usebackq skip=1 delims=, tokens=14" %%g in ("C:\Program Files (x86)\Labs\Logs\log1.txt") do for /F "tokens=1" %%d in ("%%g") do @echo %%d

      в *.bat работает.
      А конструкция

      UserParameter=LabData[*],for /F "usebackq skip=1 delims=, tokens=$1" %g in ("C:\Program Files (x86)\Labs\Logs\log1.txt") do for /F "tokens=1" %d in ("%g") do @echo %d

      в zabbix агенте выдаёт фигню какую то... вернее не совсем фигню, но лишнюю строку...

      Comment

      • lamerrrr
        Member
        • May 2010
        • 60

        #4
        О! разобрался!

        понаставил собак и все работает!

        UserParameter=LabData[*],@for /F "usebackq skip=1 delims=, tokens=$1" %g in ("C:\Program Files (x86)\Labs\Logs\log1.txt") do @for /F "tokens=1" %d in ("%g") do @echo %d

        Comment

        Working...