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

Pet*_*ter 10 ping batch-file

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

ping www.google.de -t
Run Code Online (Sandbox Code Playgroud)

并显示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
Run Code Online (Sandbox Code Playgroud)

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

显示运行批处理文件的输出的屏幕截图.

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

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

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

小智 36

我相信您必须将生成的bat文件命名为"ping.bat".如果您将文件重命名为其他名称pingXXX.bat.它肯定会奏效.试试看.

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

ping 172.31.29.1 -t
Run Code Online (Sandbox Code Playgroud)

文件名为ping.bat 在此输入图像描述

文件名为abc.bat

在此输入图像描述

  • 默认情况下,您的btach程序将检查当前目录中是否有任何指令.因此,如果在程序(您的bat文件)具有此名称时调用ping,则它将执行该程序而不是系统程序. (3认同)

Mof*_*ofi 16

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

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

-tMicrosoft 提供的选项说明:

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

您可能想要使用:

@%SystemRoot%\system32\ping.exe -n 1 www.google.de
Run Code Online (Sandbox Code Playgroud)

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

@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
Run Code Online (Sandbox Code Playgroud)


Ash*_*man 7

对于 bash (OSX) ping google.com -c 1(如果搜索将您带到这里)