다음 스위치를 사용하여 다음 명령을 실행하는 바로가기를 만들려고 합니다. 명령이 충분히 오래 실행되기 전에 창이 닫힙니다. 창이 닫히지 않도록 바로가기의 대상 상자에 /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라면). 누군가 나를 위해 올바른 구문으로 이것을 다시 작성할 수 있습니까?
답변1
매개 /k
변수는 터미널 프로세스( )에 전달되어야 합니다 cmd.exe
. 따라서 바로가기는 다음과 같아야 합니다.
%COMSPEC% /k C:\Windows\System32\PING.EXE XXX.XXX.XXX.XXX -t -I 25565
참고: %COMSPEC%
다음으로 해결됩니다.cmd.exe
답변2
/k
당신이 언급한 주장은 에 대한 것이지 에 대한 cmd.exe
것이 아닙니다 ping
. 그래서 당신은 전화해야합니다 :
C:\Windows\System32\cmd.exe /k "c:\windows\system32\ping.exe" -t -I 255 192.168.1.1
인수는 -t
취소될 때까지 ping을 수행하도록 지정하고 -I
매개변수는 TTL(Time-To-Live)을 지정합니다. 이 필드의 최대값은 TCP 사양당 255입니다.
/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번 ping한 다음 10번의 다른 배치로 다시 시작하기 전에 5초 동안 시간 초과를 수행합니다.