#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