我试图让一个批处理文件每1秒计数一次,但结果部分可以。。
我做的代码是,如果秒数低于10,它们将显示为01,02。。不像1,2。。
这是完整的文件
@Echo off
set m=00
set m1=00 //m1 being minutes and m being seconds
echo %m%
:clock
set /a m+=1
if %m% LSS 10 ( if %m% GTR 0 ( set m=0%m%)) ELSE (break) // for detecting if less than 10 found out that break doesnt do any job
if %m% GTR 60 (set /a m1+=1) //60 seconds will make it a minute ..
if %m1% LSS 10 ( if %m1% GTR 0 (set m1=0%m1% ) ) //same detecting for minutes..
echo %m% : %m1% // display time ss:mm
ping 1.1.1.1 -n 1 -w 100 > nul //stop the file for 100 (1 secs)
goto clock // go to your looping clock
但问题不是从00到10。。。。它每次都重置为08。。这是关于启用数据扩展吗和如何在不下载外部.exe文件放入文件夹的情况下修复/简化它
奇怪的是下面的代码工作起来没有问题
if %m% LSS 10 ( echo 0%m%) else ( echo %m%)
但如果我像顶部一样使用它,我需要复杂地写几分钟甚至几个小时。。
###批处理软件时钟:
@echo off
setlocal
set "s=0"
set "m=0"
:clock
set "mm=00%m%"
set "ss=00%s%"
echo %mm:~-2% : %ss:~-2%
set /a "s+=1"
if %s% gtr 59 set "s=0" & set /a "m+=1"
ping 192.0.2.2 -n 1 -w 1000 >nul
goto clock
endlocal
- 1000毫秒而不是100
- 大于59
- 使用子字符串进行填充
- 使用TEST-NET IP192.0.2.2
注意:这个时钟并不完全准确,很可能会像任何依赖ping超时的软件解决方案一样衰减。衰减的原因是处理器处理所有命令的时间超过一秒钟。如果处理器处于负载状态,并且批处理脚本优先级正常,则可以很容易地看到这一点。然而,在大多数处理器没有负载的使用情况下,时钟应该在几分钟和几秒钟内以足够的精度运行请注意
###关于Ping延迟:
注意,我已经编译了关于等待和延迟功能的ping
命令的用法。
成功方法:
PING 127.0.0.1 -n 6 >nul
- 5秒延迟
如何工作:
ping
向环回IP地址发送6
echoping
在每个回波之间暂停1秒,总计5秒-n
不能小于2,否则不会有延迟- 此方法需要一个快速响应的有效IP地址
- 这就是为什么选择localhost环回IP
127.0.0.1
的原因 - 精度(秒)。最小延迟1秒
超时方法:
PING 192.0.2.2 -n 1 -w 200 >nul
- 200毫秒延迟
如何工作:
ping
发送1个回声-n 1
,请求超时为200毫秒-w 200
- (使用此方法时,仅调整
-w
值,将-n
保留为1
) - 此方法需要一个未使用的IP地址。因为它需要失败才能造成延迟
- 唯一可以保证未使用的IP地址是用户可以控制的专用IP地址范围或TEST-NET范围
- 精度以数百毫秒为单位。最小延迟为100毫秒
私有IP地址范围:
互联网号码分配机构(IANA)已保留以下三块IP地址空间用于私人互联网:
10.0.0.0 - 10.255.255.255 (10/8 prefix)
172.16.0.0 - 172.31.255.255 (172.16/12 prefix)
192.168.0.0 - 192.168.255.255 (192.168/16 prefix)
- 根据我的经验,
10.1.1.1
只是一个通常未使用的常见私有IP地址。这就是为什么我在选择私人IP地址时更喜欢它。否则,请使用TEST-NET IP地址
TEST-NET IP地址范围:
192.0.2.0/24
-该块被分配为";TEST-NET";用于文档和示例代码。它经常与供应商和协议中的域名example.com或example.net文档此块中的地址不应出现在公共互联网。
公共IP地址:
截至2010年1月,IANA已将IP地址1.1.1.1分配给APNIC。这意味着不能再保证是一个未使用的IP地址。
###参考
- 我自己
- chakrit
- Rob van der Woude
- RFC1918
- RFC3330
- 解释DHCP服务器1.1.1.1
###更新:
- 阐述了时间衰减通知
- 已切换到TEST-NET IP地址
- 添加了有关
ping
和IP地址的信息