我想学习如何编写批处理脚本并尝试创建一个脚本,该脚本在命令行中自动运行此命令一次:
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
我的问题是,当我以脚本执行此命令时,这将导致此问题:
我的问题是它根本不会执行ping命令,只是在控制台窗口中无限次插入命令,如屏幕截图所示。
我刚创建了一个新文件,在其中写了ping www.google.de -t
,将其保存为ping.bat
文件并双击它执行。
那么如何编写批处理文件只启动一次此命令并显示ping结果?
答案 0 :(得分:35)
我确信您必须将结果bat文件命名为" ping.bat"。如果您将文件重命名为其他名称pingXXX.bat。它肯定会奏效。尝试一下。
我的批处理文件仅包含以下代码
ping 172.31.29.1 -t
文件名为ping.bat
文件名为abc.bat
答案 1 :(得分:16)
在命令提示符窗口ping /?
中输入并在按RETURN后读取短帮助输出。或者看看
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:
命令无法识别的ping
。 ping
命令通常位于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)
答案 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"。该脚本将循环执行。
避免这种情况的简单方法:
- 不要为脚本命名" ping.bat"。
- 您可以将脚本命名为" ping.bat"但在脚本内部使用" ping.exe google.com"而不是" ping google.com"。
醇>
答案 10 :(得分:0)
只需 写命令" ping您的服务器IP"没有双引号。将文件名保存为filename.bat,然后以管理员身份运行批处理文件
答案 11 :(得分:0)