dergringo73
Goto Top

String in json file ersetzen

Hallo Leute
Ich habe folgendes Problem und finde keine Lösung. Ich will in einer bestehenden .json Datei etwas suchen und ersetzen was mit dem script unten auch klappt. Anschließend wird die .json Datei in ein .zip gepackt. Das klappt auch alles nur lässt sich die zip später nicht wieder auf unserer Website importieren. Kann es sein das durch das suchen und ersetzen die json Datei beschädigt wird? Oder woran liegt es??

PS: das script habe ich nicht selber geschrieben sondern mir zusammen gegoogelt.

@echo off & setlocal enabledelayedexpansion
set "Datei=product.json"   
set "t=Temp.tmp"   
set "Suchen1=#000000"  
set "Ersetzen1=#ff0000"  
set "Suchen2=#ffffff"  
set "Ersetzen2=#ffff00"  

if exist "%t%" del "%t%"  
for /f "delims=" %%i in ('findstr /n $ "%Datei%"') do set "Line=%%i" & call :ProcessLine  
move "%t%" "%Datei%"  
goto :WEITER_IM_BATCH

:ProcessLine
for /f "tokens=1* delims=:" %%a in ("%Line%") do set "L=%%b"  
if not defined L >>"%t%" echo\& goto :eof  
set WriteLine1=!L:%Suchen1%=%Ersetzen1%!
set WriteLine2=!WriteLine1:%Suchen2%=%Ersetzen2%!
>>"%t%" echo !WriteLine2!  
goto :eof
:WEITER_IM_BATCH

CD /D "C:\Program Files (x86)\7-Zip"  
7z.exe a D:\neu\import.zip "D:\neu\product.json"  
EXIT

Content-Key: 571472

Url: https://administrator.de/contentid/571472

Printed on: April 19, 2024 at 14:04 o'clock

Member: Pjordorf
Solution Pjordorf May 13, 2020 at 16:08:30 (UTC)
Goto Top
Hallo,

Zitat von @dergringo73:
nur lässt sich die zip später nicht wieder auf unserer Website importieren.
Warum nicht? Was wird als Fehler angegeben?

Kann es sein das durch das suchen und ersetzen die json Datei beschädigt wird?
Ja ist möglich. Vergleich doch mal auf BYTE Ebene deine vorher/nachher Datei. Ein FC /B Datei1 Datei2 reicht schon. Da wir deine Quelldatei und deren Inhalt nicht kennen, https://en.wikipedia.org/wiki/JSON oder https://www.quora.com/Since-JSON-files-are-just-text-can-I-just-edit-the ... beachten.

Gruß,
Peter
Member: dergringo73
dergringo73 May 13, 2020 at 16:37:15 (UTC)
Goto Top
OK beim vergleich einer funktionierenden und einer nicht funktionierenden Datei habe ich den Fehler gefunden. Es fehlt die schließende } . Nur wieso und wie bekomme ich die } rein?

Meine Grunddatei endet mit der }
Member: dergringo73
dergringo73 May 13, 2020 at 16:51:01 (UTC)
Goto Top
Ich habe jetzt ganz einfach noch ein echo } >> mit dran gehangen und es geht. Für die paar Dateien reicht das so aus