2

Я пытаюсь сделать ярлык, который будет запускать следующую команду со следующими переключателями. Окно закрывается, прежде чем команда сможет работать достаточно долго. Я хочу знать, куда поместить /k в поле назначения ярлыка, чтобы окна не закрывались. (Я думаю, что это / K, но, возможно, это что-то еще).

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

Мое поле назначения выглядит так:

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

Но я не знаю, куда должен идти /k (если это /k). кто-то может переписать это с правильным синтаксисом для меня?

2 ответа2

2

Параметр /k необходимо передать терминальному процессу (cmd.exe). Итак, ваш ярлык должен выглядеть так:

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

Примечание: %COMSPEC% будет преобразован в cmd.exe

1

Упомянутый вами аргумент /k относится к cmd.exe , а не к ping . Итак, вы должны позвонить:

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

Аргумент -t указывает, что вы будете пинговать до отмены, а параметр -I указывает TTL (время жизни). Максимальное значение этого поля составляет 255 для спецификации TCP.

Прежде чем я понял, что аргумент /k относится к cmd.exe , я написал этот ответ, используя командные файлы. Это может быть информативно, и это просто еще один способ выполнить работу, поэтому я оставлю это на всякий случай.


Пакетный файл, пример 1:

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

Затем вы можете вызвать этот командный файл с помощью ярлыка:

"c:\folder\batchfile.bat" 192.168.1.1

Конечно, вы должны заменить диск, папку, имя пакетного файла и IP-адрес.

Вы также можете создать серию эхо-запросов, используя такую структуру:

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

Который использует аргумент -n чтобы пропинговать 10 раз, затем делает тайм-аут в течение 5 секунд, прежде чем начать заново с другим пакетом из 10.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .