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: 
`TIMEOUT` only works in increments of whole seconds.

There are other third-party "sleep" executables you can download.

Alternatively, you could use the `Sleep` method in VBScript. It accepts values as milliseconds. Here is a simple example (save it to `SLEEP.VBS` or whatever name you want):

```
ms = WScript.Arguments(0)
WScript.Sleep ms

```

Then, in your batch file call it like this for a 0.5 second delay:

```
CSCRIPT SLEEP.VBS 500

```
[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));

```