Cooper83: DOS Zeichenmanipulation

Beitrag lesen

Hallo Zusammen,

ich bin nun nach 4 oder 5 Stunden Suche mit meinem Latein am Ende und hoffe, dass Ihr mir weiterhelfen könnt. Von der Theorie her ist es nichts dramatisches.

Ich bekomme aus einem Tool A eine Zeichenkette an ein cmd Sckript übergeben. Diese Zeichenkette kann Zeilenumbrüche im Unixformat \r\n enthalten. Ebenso können hier Umlaute oder andere Sonderzeichen vorkommen. Innherhalb des DOS Skriptes rufe ich dann einen Browser inkl. URL auf die u.a. diese Zeichenkette an ein Tool B übergibt.

Die Zeichenkette ist z.B.

dies\r\nist\r\neine\r\nzeichenkette\r\nöäüß

Ich möchte nun, um das ganze URL konform zu bekommen, zum einen den Zeilenumbruch \r\n durch %0D%0A ersetzen und zum Anderen die Umlaute öäü sowie das ß durch die HTML gängigen Zeichen ä ü.... ersetzen.

Das Skript sieht wie folgt aus

@echo OFF
SET DESC=%~3
SET DESC=%DESC:\r\n=%%%0D%%0A%
"programfiles(x86)%\internet explorer\iexplore.exe" "https://meineurl.de?param1=1&param2=2&description=%DESC%"

Ich bekomme es nicht hin das z.B. aus der oben genannten Zeichenkette jedes vorkommende \r\n durch %0D%0A zu ersetzen. Das Ergebnis im oben genannten Fall wäre

diesisteinezeichenketteöäüß%0D%0A

Er trägt also lediglich am Ende einmalig das %0D%0A ein und schmeißt die \r\n Vorkommen weg. Nehme ich etwas Anderes wie z.B.

SET DESC=%DESC:\r\n=0D0A%

dann wird aus der Beispielkette

dies0D0Aist0D0Aeine0D0Azeichenkette0D0Aöäüß

Sobal ich jedoch ein %-Zeichen mit einbauen möchte, siehrt es wie oben aus.
-----------------------------------------------------------------
Problem 2 - Die Umlaute

Bei den Umlauten ist es nun so, dass hier ä offenbar als Befehl interpretiert wird. Zumindest bekomme ich hier die Ausgabe am Prompt "Der Befehl "auml" ist entweder falsch geschrieben oder konnte nicht gefunden werden"

Auch ein Maskieren mit ^ä funktioniert an der Stelle nicht.

Ich hoffe Ihr könnt mir helfen.

Vielen Dank & schöne Grüße

Daniel