Как преобразовать синтаксис JSON в другой с помощью cmd.exe пакетный файл (для цикла)

#batch-file #cmd

Вопрос:

У меня есть 10000 крошечных файлов tmp/ txt, которые выглядят так:

 1.tmp: {"a": "you","data": "1","data2": "2"} <linefeed> {"b":"bo"}
2.tmp: {"a": "you2","data": "1","data2": "2"} <linefeed> {"b":"bo2"}
3.tmp: {"a": "you3","data": "1","data2": "2"} <linefeed> {"b":"bo3"}
 

Как я могу прочитать каждый из них и преобразовать их в другой формат, один файл с 1 строкой на файл:

{ «а»: «ты», «б»: «бо» },
{ «а»: «ты2», «б»: «бо2» },
{ «а»: «ты3», «б»: «бо3» },

Сложность может заключаться в том, что в каждом файле .tmp есть строка?

Мой код начинается

 for /L %%i in (0,1,10000) do (call parsesomehow %%i.tmp )
 

Комментарии:

1. Это может помочь

2. Позвольте мне порекомендовать использовать язык, который изначально поддерживает JSON, а не обрабатывать его как обычный текст в пакетном файле…

Ответ №1:

Как я понял, в каждом файле tmp было только 2 строки. Вы должны прочитать каждый файл tmp. В каждом цикле вы должны анализировать 1-ю строку. Затем — 2-й. Этот цикл синтаксического анализа должен быть хранимой процедурой

Следующим шагом является печать проанализированных значений в выходной файл.

 @echo off
for %%i in (*.tmp) do call :parse %%i
goto :EOF

:parse
for /f "delims=," %%a in (%1) do set "A=%%a" amp;goto NXT
:NXT
for /f "delims={" %%a in ('more  1 %1') do set "B=%%a"
echo %A%, %B%>>output.txt