Batch 中的特殊字符问题

Issue with special character in Batch

有点问题我无法解决

在我的 for /f delims 参数中,我有一个特殊字符 < 而我的脚本没有注意到它。

此脚本测试网络的 IT 需求。它记录断开网络和速度。

set /p IP="IP : "
set /p MS="Millisecond : "
for /f "tokens=1,7 delims==< " %%a in ('ping.exe -w 1000 -n 1 %IP% ^| findstr /i /c:"temps"^|^| echo "Ne Repond Pas"') do (
 if "%%b" == "" (
 echo "%date% %time:~,8% Ne repond pas" >> log_%IP%.txt 
 ) ELSE (
  if %%b GEQ %MS% ( 
   echo "%date% %time:~,8% ms=%%b" >> log_%IP%.txt 
   timeout /t 1 > NUL 
  ) 
 ) 
) 
goto loop

当ping 结果小于1ms 时,记录到文件中。当 ping 为 =1ms 或 =2ms 时......它工作得很好。

我尝试在 < 之前使用转义符 ^,但没有成功。

例如

Ping 8.8.8.8 : 日志文件是完美的,因为结果

中没有<

Ping 127.0.0.1 : 脚本登录文件

谢谢

谢谢大家

我发现了我的问题,F*** Windows...

当结果为 <1ms 或更高如 =33 ms

时,ping 的结果略有不同

注意 space。

我只是用

调整我的代码
for /f "tokens=1,8 delims=m=^< " %%a in ('ping.exe -w 1000 -n 1 %IP% ^| findstr /i /c:"temps"^|^| echo "Ne Repond Pas"') do (

而且有效