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

问题描述 投票:0回答:1

我目前正在编写一个记录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
batch-file time cmd syntax command
1个回答
1
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.