pra*_*etp 8 windows-7 ping batch-file
我在 Windows 7 中创建了一个 .BAT 文件,其中包含以下行:
PING XXX.XXX.XXX.XXX -t
Run Code Online (Sandbox Code Playgroud)
(XXX 替换实际 IP 号)。但是,当我双击这个批处理文件时,我可以看到 ping 命令在循环中重复执行。我什至试图重命名为ping.BAT,ping.CMD但结果是一样的。
我想避免通过命令提示符编写 ping 命令,这就是我创建批处理文件的原因。我不知道为什么将相同的语句放入批处理文件时会不断调用 ping 命令。
aki*_*ira 16
由于您没有提供您不喜欢的任何输出或屏幕截图,因此有点不清楚您面临的问题究竟是什么,但我将解释我看到的两个最可能的问题:
鉴于您的脚本被调用ping.bat并且如下所示:
ping example.com
Run Code Online (Sandbox Code Playgroud)
然后解释器 ( cmd.exe) 搜索/探测环境变量中的路径%PATH%,寻找看起来像ping... 的东西,它通过附加每个%PATHEXT%包含类似.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC. 所以,称只是ping从ping.bat电线来搜索ping.com ping.exe ping.bat等等。解释器将ping.bat在当前工作目录(您的ping.bat)中找到 a并调用它。
所以,在这里你会有一个很好的递归:ping.cmd 执行第一行,搜索“ping”,找到“ping.cmd”,执行第一行,搜索“ping”,找到“ping.cmd”,执行第一行,搜索“ping”,找到“ping.cmd”...
您可能遇到的第二个问题是:
批处理文件的解释器通常会重复您写入 .bat/.cmd 文件的命令。因此,像这样的事情ping www.superuser.com看起来像这样:
C:\Users\XYZ\Desktop>ping www.superuser.com
Ping wird ausgeführt für superuser.com [64.34.119.12] mit 32 Bytes Daten:
Antwort von 64.34.119.12: Bytes=32 Zeit=110ms TTL=46
Antwort von 64.34.119.12: Bytes=32 Zeit=107ms TTL=46
Run Code Online (Sandbox Code Playgroud)
如果您想C:\Users\XYZ\Desktop>ping www.superuser.com在脚本的输出中删除,那么您必须在脚本中的每一行前面加上一个@(例如,'@ping www.superuser.com'),或者@echo off在您输入的命令行之前放置一个想“安静”地执行。
TL; 博士; 不要将您的 bat 文件称为与现有程序相同的文件。
小智 11
我有同样的问题,
ping.bat 包含几行 ping 命令
ping host1
ping host2
ping host3
...
Run Code Online (Sandbox Code Playgroud)
cmd shell 中的输出如下所示,并继续循环下去,直到用ctrl+中断C
c:\ping host1
c:\ping host1
c:\ping host1
c:\ping host1
c:\ping host1
...
c:\ping host1
^CTerminate batch job (Y/N)?
Run Code Online (Sandbox Code Playgroud)
要解决它,只需重命名ping.bat,这样它就不会在批处理文件中调用自己或使用 ping.exe 作为批处理文件中的命令
ping.exe host1
ping.exe host2
ping.exe host3
...
Run Code Online (Sandbox Code Playgroud)
-t 参数使 ping 连续。
也许删除 -t 参数,然后告诉你的批处理脚本在杀死 cmd 屏幕之前等待你按 Enter 键。
有一段时间没有使用 Windows,但这应该可以:
ping xxx.xxx.xxx.xxx
pause
exit
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
30030 次 |
| 最近记录: |