CMD / Batch / Registry - String ersetzen funktioniert nicht wie erwartet?

Ich habe den größten Spaß beim Versuch, eine Teilzeichenfolge in einer Codezeile für einen Windows-Registrierungsschlüssel zu ersetzen

[HKEY_CLASSES_ROOT\PING\shell\open\command]
@="C:\\Windows\\System32\\ping.exe %1 -t"

Szenario und Kontext:

Der Kontext ist ein benutzerdefiniertes URL-Protokoll, das eine Shell mit kontinuierlichem Ping zu einer bestimmten IP-Adresse öffnet, und ich möchte das Protokoll entfernenping:// von der uri, die als übergeben wird%1. Sicher, ich könnte eine Batch-Datei verwenden, aber ich würde es vorziehen, alles in einer Zeile in der Registrierung zu haben

Was ich versucht habe:

Bisher habe ich versucht, eine Liste von Befehlen mit anzuhängen& var setzen und dann wiedergeben

versuchtcall set remove=ping:// & call set mynewvar=%1:%remove=% & ping.exe %mynewvar% -t

Ich habe versucht, die Variablen mit ein paar Mal zu erweitern%%

Grundsätzlich habe ich komische Ergebnisse erzielt, oder der Ersatz funktionierte überhaupt nicht

Nicht sicher, was ich falsch mache? Wenn ich das schreibe, denke ich, dass ich die Tatsache übersehen habe, dass es in string var ist@="..."

Vielen Dank

Registrierungsschlüssel

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\PING]
@="url:ping protocol"
"URL Protocol"=""

[HKEY_CLASSES_ROOT\PING\shell]

[HKEY_CLASSES_ROOT\PING\shell\open]

[HKEY_CLASSES_ROOT\PING\shell\open\command]
@="cmd /k set var=%1 & call set var=%%var:ping://=%% & ping.exe %var% -t"

Browser in URL eingegeben ping://8.8.8.8

cmd prompt ausgabe Ping request could not find host ping://8.8.8.8/ar. Please check the name and try again.

Ich bemerke dasar nachdem die ip aus ist%var% es scheint, dass es das benutzt%v nicht%var