标题: [日期时间] 有没有人测试过,ping 127.0.0.1 -n 3600 能刚好1小时吗? [打印本页]
作者: wkl17 时间: 2015-11-7 19:22 标题: 有没有人测试过,ping 127.0.0.1 -n 3600 能刚好1小时吗?
有没有人测试过,ping 127.0.0.1 -n 3600 能刚好1小时吗?
作者: pcl_test 时间: 2015-11-7 19:26
近似
作者: DAIC 时间: 2015-11-7 23:29
不能刚好。
作者: yu2n 时间: 2015-11-8 00:00
ping 的参数 n 与时间秒无直接关系。但可用以下方式实现ping来精确控制延时,精确度1秒,最短1秒,最长1天。- :: BAT纯批处理延时,精确到1秒 By Yu2n
- :: 示例:
- :: 1. 延时 10 秒:
- :: call :xSleep 10
- :: 2. 延时23小时:
- :: call :xSleep 82800
- :: 注意:不支持超过一天的延时(应小于86400秒)
-
- :: 代码如下
- @echo off
- setlocal enabledelayedexpansion
-
- call :xSleep 10
- pause
- goto :eof
-
- :: Call :xSleep_loop 5
- goto :eof
- :xSleep
- if not defined time_start (
- set/a n_sleep=%~1
- set time_start=%time%
- call :xSleep_Count !time_start!
- if not defined n_star set/a n_star=!dt1c!
- )
- call :xSleep_count %time%
- set/a n_now=%dt1c%
- set/a n_check=%n_star% + %n_sleep% - %n_now%
- if %n_check% geq 0 (
- if "%n_check%" neq "%n_check_last%" echo %n_check% %hns%
- set n_check_last=%n_check%
- ping -w 500 -n 2 0.0.0.0 >nul
- goto :xSleep
- )
- goto :eof
- :xSleep_Count
- set dt1=%~1
- for /f "delims=: tokens=1,2,3*" %%i in ("%dt1%") do (
- set dt1h=%%i
- if "!dt1h:~0,1!"=="0" set/a dt1h=!dt1h:~1,1!
- set dt1n=%%j
- if "!dt1n:~0,1!"=="0" set/a dt1n=!dt1n:~1,1!
- set dt1s=%%k
- set dt1s=!dt1s:~0,2!
- if "!dt1s:~0,1!"=="0" set/a dt1s=!dt1s:~1,1!
- )
- set "hns=%dt1h%:%dt1n%:%dt1s%"
- set/a dt1c=(%dt1h% * 60 * 60) + (%dt1n% * 60) + (%dt1s%)
- set/a dt1c=%dt1c% %% (60 * 60 * 24)
- goto :eof
复制代码
作者: DAIC 时间: 2015-11-8 17:11
推荐使用 timeout 命令
作者: wkl17 时间: 2016-8-30 17:31
回复 4# yu2n
好些时间没上论坛了。感谢分享!
作者: wkl17 时间: 2016-8-30 17:32
推荐使用 timeout 命令
DAIC 发表于 2015-11-8 17:11
好吧,用了这么多年cmd/bat,今天第一次知道有timeout这个程序/命令..
作者: wkl17 时间: 2016-8-30 17:33
还是因为缺乏足够系统的学习啊..之前记得从论坛下载过一些chm还是其他格式的教程,不知道给丢哪里去了.
如果哪位有觉得很不错的资源 麻烦推荐一下..谢谢.
作者: Batcher 时间: 2016-8-30 18:27
回复 7# wkl17
XP系统没有,Win7有,慢慢积累吧,没有啥教程能走捷径。
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |