У меня есть текстовый файл с несколькими десятками записей в следующем формате:

code: SETX
id: 1
msg: Message for setx

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

Как видите, некоторые записи могут иметь ключи, которых нет в других (например, msg_ja находится во второй записи, но не в первой).

Теперь мне нужно прочитать этот текстовый файл и создать из него JSON. Например:

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

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

Как я могу сделать это с помощью командного файла?

1 ответ1

1

Вот начало. Есть только одна небольшая проблема: последний элемент в блоке JSON по-прежнему оканчивается запятой, но этот фрагмент кода поможет вам.

@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 }

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .