bat:等等你先别急(延时)

# bat

在bat中实现延时有以下几种方法(我见过的):

1. 使用ping命令实现延时

使用ping命令可以实现延时的效果,命令如下:

1
ping 127.0.0.1 -n 11 >nul
  1. -n 指定ping的次数,每次大概间隔1s,>nulping过程回显信息给屏蔽
  2. ping命令实现的延时,时间精度:大约1s,内存占用:ping命令所占用空间
  3. 注意闭坑:ping 从第1次发出请求到接收到回显数据几乎是瞬间的,所以你如果想实现10秒的延时,需要设置-n 为11(至少针对ping 127.0.0.1 回环地址是这样),网上很多说需要多少秒,-n参数值就设置多少秒, 真是有些误人子弟呢!
  4. 我还从网上看到过使用-w参数,指定超时等待时间来作为延时时间的,这不是可能,除非指定的地址ping不通,否则这个延时实现根本不可靠

通过超时来延时

1
2
3
4
5
6
7
timeout /t 4 /nobreak >nul
````

## 通过Choice的超时判断作为延时

```bash
choice /t 30 /d y /n > nul

Reference