Estou tentando criar um atalho que execute o seguinte comando com as seguintes opções. A janela fecha antes que o comando possa ser executado por tempo suficiente. Quero saber onde colocar o /k na caixa de destino do atalho para evitar que as janelas fechem. (Eu acho que é /k mas talvez seja outra coisa).
ping XXX.XXX.XXX.XXX -t -l 25565
Meu campo de destino é assim:
"C:\Windows\System32\PING.EXE" /k 10.98.56.1 -t -I 25565
Mas não sei para onde o /k deve ir (se for /k). alguém pode reescrever isso com a sintaxe correta para mim?
Responder1
O /k
parâmetro precisa ser passado para o processo do terminal ( cmd.exe
). Então, seu atalho deve ficar assim:
%COMSPEC% /k C:\Windows\System32\PING.EXE XXX.XXX.XXX.XXX -t -I 25565
Obs: %COMSPEC%
resolveremoscmd.exe
Responder2
O /k
argumento que você mencionou é a favor cmd.exe
, não ping
. Então você tem que ligar:
C:\Windows\System32\cmd.exe /k "c:\windows\system32\ping.exe" -t -I 255 192.168.1.1
O -t
argumento especifica que você executará ping até ser cancelado e o -I
parâmetro especifica um TTL (Time-To-Live). O valor máximo deste campo é 255 por especificação TCP.
Antes de perceber que o /k
argumento era a favor cmd.exe
, escrevi esta resposta usando arquivos em lote. Pode ser informativo e é apenas outra maneira de realizar o trabalho, então deixarei isso caso valha a pena.
Exemplo de arquivo em lote 1:
@ECHO OFF
ping -t -I 255 %1
pause
exit
Então você poderia chamar esse arquivo em lote com o atalho:
"c:\folder\batchfile.bat" 192.168.1.1
É claro que você substituiria a unidade, a pasta, o nome do arquivo em lote e o endereço IP.
Você também pode agrupar uma série de pings usando uma estrutura como esta:
@echo off
:loop
cls
ping -n 10 -I 255 %1
timeout 5
goto :loop
Que usa o -n
argumento para executar ping 10 vezes e, em seguida, atinge o tempo limite de 5 segundos antes de reiniciar com outro lote de 10.