Batch Replace %-Zeichen

Geisterwolf

Lt. Commander
Registriert
Juni 2008
Beiträge
1.635
Hallo zusammen,

ich habe ein Batchfile, welches von extern einen String erhält. Dabei handelt es sich um Pfad und Name einer Datei mit UNC Pfad, welche mit Adobe Reader geöffnet werden soll.
Aufgerufen wird die Geschichte via Browser. Firefox macht das auch sauber. Ich erhalte als String \\Server\Pfad\Datei.pdf
Mein Problem ist nun Chrome und Edge, diese liefern mir nicht die \ und Blanks, sondern \= %5C und Blank= %20.
Nun sollte das in der Batch Datei gewandelt werden, was allerdings nicht so einfach ist wie ich dachte, da die % Zeichen zum Variablen Aufruf gehören.

Dieser Befehl wird in der Browser Adresszeile ausgeführt:
startpdf:\\spielwiese2019\WebPDFTest\pfad mit leer\test.pdf

Um zu sehen was passiert habe ich mir an diversen Punkte Printouts angehängt.
Code:
@echo off
Setlocal EnableDelayedExpansion

set str=%1
set str=!str:startpdf:=!
echo !str! > c:\_transfer\str1.txt
set str=!str:%5C=\!
echo !str! > c:\_transfer\str2.txt
set str=!str:%20= !
echo !str! > c:\_transfer\str3.txt

cd "C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\"
start /B AcroRd32.exe !str!

str1 = "%5C%5Cspielwiese2019%5CWebPDFTest%5Cpfad%20mit%20leer%5Ctest.pdf"
str2 = "%5\%5\spielwiese2019%5\WebPDFTest%5\pfad%20mit%20leer%5\test.pdf"
str3 = "%5\%5\spielwiese2 19%5\WebPDFTest%5\pfad%2 mit%2 leer%5\test.pdf"

Ich bekomme also wohl \ und Blanks rein, aber die Variable die Chrome setzt nicht komplett raus. Und nun stehe ich etwas im Wald und weiss nicht weiter.
Kann man ein % überhaupt replacen mit reinen Batch Mitteln?

Merci und Grüssle
Jani
 
So gehts in einem Batchfile
Code:
setlocal EnableDelayedExpansion
set str=jump%20over%20the%20chair
set rpl=!str:%20= !
echo %rpl%

Ich würde lieber powershell nehmen statt mich mit der batch syntax zu quälen
 
  • Gefällt mir
Reaktionen: Geisterwolf, tollertyp und Towatai
Zurück
Oben