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?
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.
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.
Please also mark the comments that contributed to the solution of the article
Content-ID: 4058609151
Url: https://administrator.de/contentid/4058609151
Printed on: September 14, 2024 at 09:09 o'clock
2 Comments
Latest comment
Du brauchst Unterstützung für Reguläre Ausdrücke. Die bietet dir Batch allerdings nicht. Du kannst PowerShell in einem Batchcode ausführen.
Besser wäre aber, du lässt Batch gleich links liegen, weil ...
Warum PowerShell und nicht Batch?
Steffen
@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!'"
Warum PowerShell und nicht Batch?
Steffen