Estoy intentando crear un acceso directo que ejecute el siguiente comando con los siguientes modificadores. La ventana se cierra antes de que el comando pueda ejecutarse el tiempo suficiente. Quiero saber dónde colocar /k en el cuadro de destino del acceso directo para evitar que se cierren las ventanas. (Creo que es /k pero tal vez sea otra cosa).
ping XXX.XXX.XXX.XXX -t -l 25565
Mi campo objetivo se ve así:
"C:\Windows\System32\PING.EXE" /k 10.98.56.1 -t -I 25565
Pero no sé dónde se supone que debe ir /k (si es /k). ¿Alguien puede reescribir esto con la sintaxis correcta para mí?
Respuesta1
El /k
parámetro debe pasarse al proceso terminal ( cmd.exe
). Entonces, tu atajo debería verse así:
%COMSPEC% /k C:\Windows\System32\PING.EXE XXX.XXX.XXX.XXX -t -I 25565
Nota: %COMSPEC%
resolverácmd.exe
Respuesta2
El /k
argumento que mencionaste es a favor cmd.exe
, no ping
. Entonces tienes que llamar:
C:\Windows\System32\cmd.exe /k "c:\windows\system32\ping.exe" -t -I 255 192.168.1.1
El -t
argumento especifica que hará ping hasta que se cancele y el -I
parámetro especifica un TTL (tiempo de vida). El valor máximo de este campo es 255 por especificación TCP.
Antes de darme cuenta de que el /k
argumento era a favor cmd.exe
, escribí esta respuesta usando archivos por lotes. Puede ser informativo y es simplemente otra forma de hacer el trabajo, así que lo dejaré por si vale la pena.
Ejemplo de archivo por lotes 1:
@ECHO OFF
ping -t -I 255 %1
pause
exit
Entonces podrías llamar a ese archivo por lotes con el acceso directo:
"c:\folder\batchfile.bat" 192.168.1.1
Por supuesto, sustituiría la unidad, la carpeta, el nombre del archivo por lotes y la dirección IP.
También puedes agrupar una serie de pings usando una estructura como esta:
@echo off
:loop
cls
ping -n 10 -I 255 %1
timeout 5
goto :loop
Que utiliza el -n
argumento para hacer ping 10 veces, luego realiza un tiempo de espera de 5 segundos antes de comenzar de nuevo con otro lote de 10.