Jak użyć / k, aby zachować skrót do wiersza poleceń przed zamknięciem?

2

Próbuję utworzyć skrót, który uruchomi następujące polecenie z następującymi przełącznikami. Okno zamyka się, zanim polecenie będzie działać wystarczająco długo. Chcę wiedzieć, gdzie umieścić / k w polu docelowym skrótu, aby okna nie były zamykane. (Myślę, że to / k, ale może to coś innego).

ping XXX.XXX.XXX.XXX -t -l 25565

Moje pole docelowe wygląda tak:

"C:\Windows\System32\PING.EXE" /k 10.98.56.1 -t -I 25565

Ale nie wiem, gdzie powinien iść / k (jeśli jest / k). czy ktoś może przepisać to poprawną składnią dla mnie?

HornyPlatypus
źródło
Uwaga: -I nie jest poprawną opcją Ping w systemie Windows i Ping -i (który jest poprawne, to TTL) akceptuje tylko maksymalną wartość 255.
Ƭᴇcʜιᴇ007

Odpowiedzi:

2

The /k parametr musi zostać przekazany do procesu terminalowego ( cmd.exe ). Twój skrót powinien wyglądać tak:

%COMSPEC% /k C:\Windows\System32\PING.EXE XXX.XXX.XXX.XXX -t -I 25565

Uwaga: %COMSPEC% ustąpi cmd.exe

heavyd
źródło
Aby być pedantycznym, jest %ComSpec% ;)
DavidPostill
1

The /k argument, o którym wspomniałeś cmd.exe, nie ping. Więc musisz zadzwonić:

C:\Windows\System32\cmd.exe /k "c:\windows\system32\ping.exe" -t -I 255 192.168.1.1

The -t argument określa, że ​​będziesz pingował do anulowania, a -I parametr określa TTL (Time-To-Live). Maksymalna wartość tego pola wynosi 255 na specyfikację TCP.

Zanim zdałem sobie sprawę z /k argument za cmd.exe, Napisałem tę odpowiedź za pomocą plików wsadowych. To może być pouczające i to po prostu inny sposób na wykonanie zadania, więc zostawię to na wypadek, gdyby było warto.


Przykład pliku wsadowego 1:

@ECHO OFF
ping -t -I 255 %1
pause
exit

Następnie możesz nazwać ten plik wsadowy skrótem:

"c:\folder\batchfile.bat" 192.168.1.1

Oczywiście należy zastąpić dysk, folder, nazwę pliku wsadowego i adres IP.

Możesz także wsadzić serię pingów za pomocą takiej struktury:

@echo off
:loop
cls
ping -n 10 -I 255 %1
timeout 5
goto :loop

Który używa -n argument pingowania 10 razy, a następnie wykonuje limit czasu na 5 sekund przed rozpoczęciem z kolejną partią 10.

Norman Cooke
źródło