[BATCH/.Bat files]帮助计数错误



我试图让一个批处理文件每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地址发送6echo
  • ping在每个回波之间暂停1秒,总计5秒
  • -n不能小于2,否则不会有延迟
  • 此方法需要一个快速响应的有效IP地址
  • 这就是为什么选择localhost环回IP127.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地址的信息

最新更新