我无法解决的一个问题。
在我的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结果为&lt; 1ms,它登录文件。当ping = 1ms或= 2ms时......它可以正常工作。
我在^
之前尝试使用转义字符<
,但这不起作用。
E.g
Ping 8.8.8.8:日志文件很完美,因为结果中没有<
Ping 127.0.0.1:脚本登录文件
由于
答案 0 :(得分:0)
全部谢谢
我发现了我的问题,而且F *** Windows ......
如果结果为<1ms
或更高,如=33 ms
注意空格。
我只是用
调整我的代码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 (
它有效