Question: I want to make a batch file wait for 0.5 or 0.25 seconds.  

I have already tried `timeout /t 0.5` but it is not working.

It is something like:  

`@echo off color a cls :top echo %random% timeout /t 0.5 echo %random% goto top`

Edit : Thanks for the answers y'all

Answer: 
Try this: `ping 127.0.0.1 -n 1 -w 500> nul` 500 is the time in ms.

EDIT:

As rojo posted in the comments this won't work as expected for 250ms:

> 
> ping used this way pauses a minimum of 500ms. Using any value lower than 500 still results in a half second pause
> 
> 
>
[See this question](https://stackoverflow.com/questions/28369536/) for some worthwhile information. To summarize, using `ping` to pause is limited to 500ms or greater. You won't be able to pause for 250ms. The best solution is to use Windows Scripting Host -- VB Script or JScript.

You can do this with a [batch / JScript hybrid](https://gist.github.com/davidruhmann/5199433) to avoid having to call an external VBS script. Save this example with a .bat extension and try it.

```js
@if (@CodeSection == @Batch) @then

@echo off
setlocal

for /L %%I in (10,-1,1) do (
    set /P "=%%I... "<NUL
    call :pause 250
)

echo Done.
goto :EOF

:pause <ms>
cscript /nologo /e:JScript "%~f0" "%~1"
goto :EOF

@end // end batch / begin JScript hybrid code
WSH.Sleep(WSH.Arguments(0));

```