如何在批处理文件中仅对服务器执行一次ping操作?

时间:2014-08-03 17:47:42

标签: batch-file ping

我想学习如何编写批处理脚本并尝试创建一个脚本,该脚本在命令行中自动运行此命令一次:

ping www.google.de -t

并显示ping,因此它看起来像这样:

Reply from XXX.XXX.X.XX: time=30ms
Reply from XXX.XXX.X.XX: time=31ms
Reply from XXX.XXX.X.XX: time=29ms

我的问题是,当我以脚本执行此命令时,这将导致此问题:

Screenshot showing output on running the batch file.

我的问题是它根本不会执行ping命令,只是在控制台窗口中无限次插入命令,如屏幕截图所示。

我刚创建了一个新文件,在其中写了ping www.google.de -t,将其保存为ping.bat文件并双击它执行。

那么如何编写批处理文件只启动一次此命令并显示ping结果?

12 个答案:

答案 0 :(得分:35)

我确信您必须将结果bat文件命名为" ping.bat"。如果您将文件重命名为其他名称pingXXX.bat。它肯定会奏效。尝试一下。

我的批处理文件仅包含以下代码

ping 172.31.29.1 -t

文件名为ping.bat enter image description here

文件名为abc.bat

enter image description here

答案 1 :(得分:16)

在命令提示符窗口ping /?中输入并在按RETURN后读取短帮助输出。或者看看

  • Ping - Windows XP文档
  • Ping - Microsoft TechNet文章

Microsoft提供的选项-t的说明:

  

ping指定的主机直到停止。要查看统计信息并继续键入Control-Break。要停止输入Control-C。

您可能想要使用:

@%SystemRoot%\system32\ping.exe -n 1 www.google.de

或者首先检查服务器是否可用:

@echo off
set MyServer=Server.MyDomain.de
%SystemRoot%\system32\ping.exe -n 1 %MyServer% >nul
if errorlevel 1 goto NoServer

echo %MyServer% is availabe.
rem Insert commands here, for example 1 or more net use to connect network drives.
goto :EOF

:NoServer
echo %MyServer% is not availabe yet.
pause
goto :EOF

答案 2 :(得分:4)

不确定您正在尝试什么,但您发布的代码应该可以正常工作。如果您不希望显示该命令,请在脚本开始时添加@echo off。如果我在名为test.bat的文件中包含以下代码并将其命令提示符作为test.bat运行,那么它将正常工作。

@echo off
ping www.google.de -t

解决主要问题EDIT:命令无法识别的pingping命令通常位于C:\Windows\System32\下,其中C:\是根目录。如果根目录不同,您可以使用%SystemRoot%环境变量获取根目录,可以这样说

%SystemRoot%\Windows\System32\PING.EXE www.google.de -t

另一种查看您尝试运行的命令是否可识别的方法是使用WHERE命令,如下所示

where ping

如果命令可识别;它会输出像

这样的路径
C:\Windows\System32\PING.EXE

否则会导致错误

答案 3 :(得分:2)

我知道为什么,你使用文件名“ping”而你正在使用代码“ping”,它只是继续尝试运行自己,因为它所选择的目录在那个文件所在的位置,如果你想让它实际ping ,在ping命令之前输入:“cd C:\ Windows \ system32”,ping服务器的实际文件就在那里!

答案 4 :(得分:2)

如果你想使用名称“ping.bat”,一个小技巧就是使用这段代码:

@echo off
cd\ 
ping google.com -t

只需添加“cd”即可,你很好......;)

答案 5 :(得分:1)

对于bash(OSX)ping google.com -c 1(包括搜索带你到这里)

答案 6 :(得分:1)

从批处理文件中,使用以下命令仅对ip执行一次ping操作:
    Ping 192.168.199.10 -n 1

enter image description here

答案 7 :(得分:0)

我使用了Mofi样本,并更改​​了一些参数,没有你可以做-t

@%SystemRoot%\ system32 \ ping.exe -n -1 4.2.2.4

答案 8 :(得分:0)

在这种情况下,您唯一需要考虑的是,您在计算机上的目录中。 您的命令行窗口将C:\users\rei0d\desktop\显示为当前目录。

所以你真正需要做的唯一事情是:
通过"上去"移除desktop使用命令cd ..

所以完整的命令是:

cd ..
ping XXX.XXX.XXX.XXX -t

答案 9 :(得分:0)

在同一个文件夹中有两个名为test.bat和ping.bat的脚本:

脚本test.bat包含一行:

ping google.com

脚本ping.bat包含以下行:

@echo off
echo Hello!
pause

执行" test.bat" CMD的结果将是:

Hello!
Press any key to continue . . .

为什么呢?因为" test.bat"正在呼叫" ping.bat" (" ping google.com"被解释为调用" ping.bat"脚本)。 如果脚本" ping.bat"正在发生同样的情况。包含" ping google.com"。该脚本将循环执行。

  

避免这种情况的简单方法:

     
      
  1. 不要为脚本命名" ping.bat"。
  2.   
  3. 您可以将脚本命名为" ping.bat"但在脚本内部使用" ping.exe google.com"而不是" ping google.com"。
  4.   

答案 10 :(得分:0)

只需 写命令" ping您的服务器IP"没有双引号。将文件名保存为filename.bat,然后以管理员身份运行批处理文件

答案 11 :(得分:0)

创建一个带有文本“@%SystemRoot%\system32\ping.exe -t www.google.com”的文本文件并使用扩展名“.bat”保存它。 只需点击并运行它,你就会得到结果。

Result

所以基本上发生的事情是我们运行带有参数“-t”和“www.google.com”(网址)的 ping.exe 应用程序。