mam najbardziej zabawne próbując zastąpić podciąg w jednej linii kodu do klucza rejestru systemu WindowsCMD/Batch/Registry - String replace nie działa zgodnie z oczekiwaniami?
[HKEY_CLASSES_ROOT\PING\shell\open\command]
@="C:\\Windows\\System32\\ping.exe %1 -t"
Scenariusz i kontekst:
Kontekst jest zwyczaj, że będzie protokół url Otwórz powłokę z ciągłym pingem do konkretnego ip i chcę usunąć protokół ping://
z URI, który zostanie przekazany jako %1
. pewien, że mogę korzystać z pliku wsadowego, ale wolałbym mieć wszystko w jednej linii w rejestrze
Co próbowałem:
dotychczas Próbowałem dołączając listę polecenia z &
ustawienie var a następnie powtarzając go ..
próbowali call set remove=ping://
&
call set mynewvar=%1:%remove=%
&
ping.exe %mynewvar% -t
próbowałem rozszerzanie zmiennych kilka razy ù śpiewać %%
zasadzie byłem coraz dziwne rezultaty lub wymienić nie działa w ogóle
Nie wiem, co robię źle? Wpisanie tego, zacząłem myśleć, że jestem z widokiem na fakt jej w ciąg var @="..."
dzięki
klucza rejestru
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"
przeglądarka wpisany URL ping://8.8.8.8
Wyjście polecenia cmd Ping request could not find host ping://8.8.8.8/ar. Please check the name and try again.
zauważam ar
po ip jest od %var%
wydaje jej pomocą %v
nie %var
Nice, ale '% var%' również działa na moim systemie XP, więc '% v' nie wydaje się być przyczyną problemu – jeb
Musiałem usunąć tylko 'protokół:' i uruchomić program inny niż cmd, więc poszedłem z czymś takim: '" zestaw cmd/k myvar =% 1 i zestaw wywołający myvar = %% myvar: protocol: = %% & call \ "C: \\ Program Files \\ ścieżka \\ do \\ program.exe \" \ "%% myvar %% \" & exit "' – Piyin