Arquivo em lote para ler um arquivo e criar um JSON?

0

Eu tenho um arquivo de texto com algumas dezenas de entradas no seguinte formato:

code: SETX
id: 1
msg: Message for setx

code: SETY
id: 2
msg: Message for sety
msg_ja: Japanese message for sety

Como você pode ver, algumas entradas podem ter chaves que não estão presentes em outras (por exemplo: msg_ja está na segunda entrada, mas não na primeira).

O que eu preciso agora é ler este arquivo de texto e criar um JSON dele. Por exemplo:

global_var.SETX = {
  id: 1,
  msg: "Message for setx"
};

global_var.SETY = {
  id: 2,
  msg: "Message for sety",
  msg_ja: "Japanese message for sety"
};

Como posso fazer isso usando um arquivo em lotes?

    
por thameera 27.08.2014 / 07:52

1 resposta

1

Aqui está um começo. Há apenas um pequeno problema: o último item no bloco JSON ainda termina com uma vírgula, mas esse trecho de código irá ajudá-lo.

@echo off
Setlocal EnableDelayedExpansion

set first=1

for /f "tokens=1,2" %%i in (input.txt) do (    
    if "%%i"=="code:" (
        if !first! neq 1 (
            echo }
        )               
        echo global_var.%%j = {
    ) else (
        echo   %%i %%j,
    )
    set first=0
)
echo }
    
por 27.08.2014 / 08:48