batchbum

Batch: In Variable ö mit Zeichenfolge ersetzen

Hallo,

ich extrahiere aus einer Datei per Batch Werte wie zum Beispiel Namen, Adressen usw.
Aus diesen Werten wird am Ende per Aneinanderreihung von Variablen (%Name%-%Vorname%) ein Link gebildet, der mittels Browser geöffnet wird.

Soweit, so gut, das funktioniert alles.
Nun sind aber in Namen auch mal Umlaute etc.
Der Link benötigt nun statt z. B. einem ö die Zeichenfolge %C3%B6 um korrekt interpretiert zu werden.

Wie bekomme ich das per Batch hin, dass das Script alle Variablen auf Umlaute prüft und diese entsprechend der vom Browser gewünschten Syntax umgebaut werden?
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 785971552

Url: https://administrator.de/forum/batch-in-variable-oe-mit-zeichenfolge-ersetzen-785971552.html

Ausgedruckt am: 17.05.2025 um 21:05 Uhr

Xerebus
Lösung Xerebus 24.06.2021 um 09:31:14 Uhr
Goto Top
Hallo,

denke das hilft weiter.
Prozentzeichen in Zeichenketten ersetzen
colinardo
Lösung colinardo 24.06.2021 aktualisiert um 14:43:18 Uhr
Goto Top
Alter Verwalter, immer noch am "Batchen" ?!
Powershell ist always your friend.
[System.Net.WebUtility]::UrlEncode('MeinStringMitäundöundü')  
Lässt sich wenn man unbedingt will auch in einer Batch verwenden, dann entfallen diese schon lange ehlend langen und überflüssigen manuellen Replace-Arbeiten auf Batch Ebene!
@echo off
chcp 1252
powershell -EP Bypass -C "[System.Net.WebUtility]::UrlEncode('MeinStringMitäundöundü')"  
Grüße Uwe

Powershell Link-Leitfaden für Anfänger
Batchbum
Batchbum 24.06.2021 um 21:39:23 Uhr
Goto Top
Jaja, immer noch.
Batch ist halt auch für fast ahnungslose halbwegs lesbar.
Dazu habe ich selbst ein Problem mit Sprachen, lesen und verstehen geht gut, sprechen und schreiben leider ganz mies.
Damit fällts mir unheimlich schwer, mich vom gewohnten zu lösen...
Und weil ich über die Jahre ein gutes Reservoir an Routinen erarbeitet habe, die man in irgendeiner Form immer braucht und entsprechend abwandeln kann.

Deine Methode funktioniert prima, vielen Dank!!
Und so wurde das dann in eine Variable gepackt:
for /f %%a in ('powershell -EP Bypass -C "[System.Net.WebUtility]::UrlEncode('%Vorname%')"') DO set "Vorname=%%a"  

Vielen Dank euch beiden für die Antworten.