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 (
而且有效
有点问题我无法解决
在我的 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
注意 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 (
而且有效