batchbum
Goto Top

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?

Content-Key: 785971552

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

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

Member: Xerebus
Solution Xerebus Jun 24, 2021 at 07:31:14 (UTC)
Goto Top
Hallo,

denke das hilft weiter.
Prozentzeichen in Zeichenketten ersetzen
Member: colinardo
Solution colinardo Jun 24, 2021 updated at 12:43:18 (UTC)
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
Member: Batchbum
Batchbum Jun 24, 2021 at 19:39:23 (UTC)
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.