sandros
Goto Top

Batch: festen Text mit unterschiedlichem Wert suchen, dann ersetzen

Hi @ all

Ich habe folgendes Problem. Ich versuche einen Text in vielen Dateien zu suchen und diesen zu ersetzen.
Das geht einwandfrei. Ich möchte aber die Abfrage globalisieren, da sich in anderen Dateien andere Werte zum Text befinden. Wie kann ich einen bestimmten Text mir einer unbestimmten Zahl suchen lassen und dort eben nur die Zahl ersetzen?

echo !text:"test:wertung": 6,="test:wertung": 99,!>>!tempfile!  

Das geht, solange ich nur die 6 drin stehen hab. Wie erweitere ich auf x? Dabei kann aber auch sein, dass die Zahl zweistellig ist, das einzige Muster wäre : x, (Doppelpunkt leer, zahl egal wie groß, dann immer ein Komma). Das "test:wertung": ist immer das selbe.

ich hoffe ich hab das jetzt gut genug beschrieben.
Danke für Eure Zeit und mfG S.

Content-Key: 4058609151

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

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

Member: rubberman
rubberman Sep 25, 2022 at 20:15:27 (UTC)
Goto Top
Du brauchst Unterstützung für Reguläre Ausdrücke. Die bietet dir Batch allerdings nicht. Du kannst PowerShell in einem Batchcode ausführen.
@echo off &setlocal EnableDelayedExpansion

set "InpFile=test.txt"  
set "OutpFile=test2.txt"  

powershell.exe -nop -ep Bypass -c "(Get-Content '!InpFile!') -replace '\"test:wertung\": \d+,','\"test:wertung\": 99,' | Set-Content '!OutpFile!'"  
Besser wäre aber, du lässt Batch gleich links liegen, weil ...
Warum PowerShell und nicht Batch?

Steffen
Member: SandroS
SandroS Sep 25, 2022 at 20:53:58 (UTC)
Goto Top
Danke für die schnelle Antwort.

Reguläre Ausdrücke, ja das ist gut. Klar nicht in Batch, ich bin leider nicht bewandert, in PowerShell face-smile
Werde mich aber dort mal einlesen müssen in dem Fall.

Sandro