我目前正在编写一个记录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个空格。