Ich versuche, eine .bat-Datei als Protokollhandler zu verwenden. Die Protokoll-URL lautet beispielsweise testapp://close
und ich habe das zu startende Protokoll "C:\test.bat" "%1"
in der Registrierung festgelegt.
Die test.bat
Datei
@echo off
echo %1
pause
exit 0
Im Wesentlichen möchte ich nur den Parameter in der URL close
an eine Anwendung übergeben, um sie auszuführen. C:/someapp.exe close
Der %1
Parameter, den ich erhalte, ist jedoch die vollständige URL testapp://close/
. Wie kann ich den close
Parameter %1
nur mit nativen Windows-Befehlen aus der Variablen analysieren ?
explorer.exe testapp://close
Antworten:
Sie können eine Verwendung
FOR /F
Schleife und mit den Optionen"TOKENS=2 DELIMS=/"
können Sie den Wert aus dem URL - String übergibt als erstes Argument bei Batch - Skript - Ausführung erhalten nach ihrem (der URL - Wert) zweiten Schrägstrich (/
) , aber vor dem nächsten Schrägstrich (/
) geben Ihnen das erwartete Ergebnis genau so, wie Sie es von diesem Teil der URL benötigen.Sie können
SET
die analysierte URL-Zeichenfolge als Variablenwert verwenden und diese als erstes Argument an die ausführbare Anwendungsdatei übergeben. Im Folgenden werden einige Beispiele für Batch-Skripte aufgeführt, um eine genauere Erläuterung zu ermöglichen.# 1. Batch-Skript
# 2. Batch-Skript
# 1. Korrelierte Ausgabeergebnisse
Weitere Ressourcen
FOR /?
quelle
FOR /F "TOKENS=2 DELIMS=/" %%A IN ("%~1") DO (START "" C:/someapp.exe "%%~A")
Start anstelle von Call verwenden, aber ich vermute, Sie wissen das bereits, wollten es aber in einem Kommentar nur für den Fall erwähnen.