CMD / Lote / Registro - A substituição da sequência não está funcionando conforme o esperado?

Estou me divertindo muito tentando substituir uma substring em uma linha de código por uma chave de registro do Windows

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

Cenário e Contexto:

O contexto é um protocolo de URL personalizado que abrirá um shell com ping contínuo para um ip específico e eu quero remover o protocoloping:// do uri que é passado como%1. certeza de que eu poderia usar um arquivo em lotes, mas eu preferiria ter tudo em uma linha no registro

O que eu tentei:

até agora tentei anexar uma lista de comandos com& definindo um var e ecoando ..

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

Eu tentei expandir as variáveis algumas vezes usando%%

Basicamente, eu tenho obtido resultados estranhos ou a substituição não está funcionando.

Não sabe o que estou fazendo de errado? Ao digitar isso, comecei a pensar que estou ignorando o fato de estar na string var@="..."

obrigado

Chave do registro

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"

navegador digitado no URL ping://8.8.8.8

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

Eu percebo oar depois que o ip é de%var% parece que está usando o%v não%var