Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I created a .BAT file in Windows 7 that has the following line:


(XXX replaces the actual IP number). However, when I double click on this batch file, I can see the PING command repeatedly being executed in a loop. I even tried to rename the ping.BAT to ping.CMD but the result is the same.

I want to avoid writing PING command through the Command Prompt, which is why I created the batch file. I don't know why the PING command is being continuously called when the same statement is put in a batch file.

share|improve this question
Actually repeating or you see it pinging forever? Because that's what -t does. – Jun 18 '11 at 3:52
ping -t <-- from cmd prompt, it does repeatedly. and that's not in a batch file (tested in win xp) – barlop Jun 18 '11 at 3:56
you're supposed to put the - switch before the host anyway. ping -t but does the same thing. and is meant to. why use -t if you don't want infinite, see ping -? so your question is profoundly strange – barlop Jun 18 '11 at 3:58
"I don't know whey the PING command is being continuously called when the same statement is put in a batch file." <-- do you stand by this? – barlop Jun 18 '11 at 4:00
I still haven't found a solution. I see the PING command being repeatedly called without any result. – pradeetp Jun 19 '11 at 17:04

It is a bit unclear what is exactly the problem you face since you don't provide any output or screenshot of what you don't like, but I'll explain the two most likely problems I see:

Given your script is called ping.bat and looks like this:


then the interpreter (cmd.exe) searches/probes the paths in the environment variable %PATH% for something that looks like ping ... and it does that by appending each suffix from %PATHEXT% which contains something like .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC. so, calling just ping from the ping.batleads to a search for ping.exe ping.bat and so on. The interpreter will find a ping.bat in the current working directory (your ping.bat) and calls it.

So, you will have a nice recursion here: ping.cmd executes the first line, searches for "ping", finds "ping.cmd", executes the first line, searches for "ping", finds "ping.cmd", executes the first line, searches for "ping", finds "ping.cmd" ...

The second problem you might have is this:

The interpreter of the batch file will usually repeat the commands you have written to the .bat/.cmd file. Thus something like this ping will look like this:


 Ping wird ausgeführt für [] mit 32 Bytes Daten:
 Antwort von Bytes=32 Zeit=110ms TTL=46
 Antwort von Bytes=32 Zeit=107ms TTL=46

If you want to get rid of C:\Users\XYZ\Desktop>ping in the output of the script then you have to either prepend each line with an @ (for example, '@ping') in the script or place a @echo off before the bunch of command lines you want to execute "quietly".

TL;DR; Don't call your bat files the same as existing programs.

share|improve this answer

I had the same problem,

ping.bat contained several lines of ping command

ping host1
ping host2
ping host3

output in cmd shell looked as below and continued in a loop on and on until the break with 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)?

To solve it, just rename the ping.bat, so it doesn't call itself in the batch file or use ping.exe as the command in the batch file

ping.exe host1
ping.exe host2
ping.exe host3
share|improve this answer

The -t parameter makes the ping continuous.

Maybe remove the -t parameter and then tell your batch script to wait for you to press enter before killing the cmd screen.

Haven't used windows in a while but this should work:

share|improve this answer
removing -t didn't work. Could you please post the script? – pradeetp Jun 19 '11 at 17:04
@pradeetp added some code above – n0pe Jun 19 '11 at 19:22

I had the same issues. Here is the resolution:

Rename your ping.bat file to pingtest.bat

And ensure it contains:


This will allow you to ping one or multiple addresses and will show the results on screen. This batch file can be run from anywhere on your PC by double clicking on it.

share|improve this answer

The local script execution seems to prevent ping.exe from running in a script. Try right-clicking, and "run as administrator". I'm looking up how to update the execution policy.

Just when I thought I knew something about Windows, they changed it.

Update: Recursion is the answer...

You can't call it ping.bat and call ping.exe

You also can't call it route.bat and call route.exe.

e.g, when I run ping.bat, then run it again as pingx.bat: enter image description here

share|improve this answer

Right click - Run As Administrator worked for me.

share|improve this answer
I could swear that this isn't correct and tested it - and he is right O_O – nixda Aug 20 '13 at 16:42

It is because you name the batch file same as the ping command is named. Rename your batch file to something else. Etc.: myping.bat

share|improve this answer

In other words, do not name your batch file (ping). Use any other file name you want. And the following code will work perfectly.

@echo off
share|improve this answer
That answer is the same as stefan and akira already gave. Only shorter – nixda Mar 7 '14 at 22:55

protected by Nifle Feb 15 '15 at 16:13

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site.

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.