我正在尝试创建一个快捷方式,该快捷方式将使用以下开关运行以下命令。窗口在命令运行足够长的时间之前关闭。我想知道在快捷方式的目标框中将 /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(生存时间)。根据 TCP 规范,此字段的最大值为 255。
在我意识到/k
争论的焦点之前cmd.exe
,我使用批处理文件写出了这个答案。它可能很有用,而且这只是完成工作的另一种方法,所以我会把它留下来以防万一。
批处理文件示例1:
@ECHO OFF
ping -t -I 255 %1
pause
exit
然后您可以使用快捷方式调用该批处理文件:
"c:\folder\batchfile.bat" 192.168.1.1
当然,您可以替换驱动器、文件夹、批处理文件名和 IP 地址。
你也可以使用如下结构批量执行一系列 ping:
@echo off
:loop
cls
ping -n 10 -I 255 %1
timeout 5
goto :loop
它使用-n
参数 ping 10 次,然后超时 5 秒,再重新开始另一批 10 次。