在批处理文件中使用%time%时,永远不会存储时间

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在批处理文件中使用%time%时,永远不会存储时间相关的知识,希望对你有一定的参考价值。

我目前正在编写一个记录ip的ping的批处理文件并记录时间。不幸的是,当我尝试使用%time%命令并存储它时,它总是不返回任何内容。

当我单独运行命令时,它可以工作,而不是我的其他代码

Set packet=0
Set Down=0
Set Up=0
Set time=0
SET /P IP=enter ip.
set counter=0
:ping
Rem ping -n 1 -w 2500 %IP%>>ping.txt
ping -n 1 -w 2500 %IP% > nul 2>&1 && set Test=Pass || set Test=Fail
FOR /F "tokens=1-9 delims==< " %%a IN ('PING -n 1 -w 2500 %IP%') DO IF "%%h"=="TTL" SET RESPONSE=%%g 
mode 100
Set time= %TIME:~0,5%
echo %time%
pause
答案

让我重申@SomethingDark已经说过的话。

这正是导致你的问题的原因,以及你在=登录后有空格的事实:Set time= %TIME:~0,5%

例如,这会在当前时间之前为空格添加前缀,并将值保存为“17:3”(5个字符)。下次运行相同的命令时,存储在时间变量中的值将为“17:”(带2个空格),依此类推。最终,您最终会在时间变量中保存5个空格。

以上是关于在批处理文件中使用%time%时,永远不会存储时间的主要内容,如果未能解决你的问题,请参考以下文章

Firebase 存储上传任务继续永远不会触发

CoreData:Ubiquity:使用本地存储:1 永远不会变成 0

如何选择永远不会被拉到存储库的文件? [重复]

使用 ajax 将 textarea 信息存储到数据库中。除非我以任何方式编辑 textarea,否则工作正常。信息仍然被存储,但 XMLHTTP 永远不会关闭

如何使 CloudFront 永远不会在 S3 存储桶上缓存 index.html

AVPlayer seekToTime 永远不会完成