无论如何都要将此bat文件的输出转换为一个长字符串,例如
11/03 / 2015,9:36:24.28,数据包:发送= 1,接收= 0,丢失= 1(100%丢失),最小值= 170毫秒,最大值= 170毫秒,平均值= 170毫秒
@ECHO off
set IPADDRESS=192.168.4.1
set INTERVAL=60
:PINGINTERVAL
echo %date% %time% >>CFConnection.txt
ping %IPADDRESS% -n 1 | FIND "loss" >>CFConnection.txt
ping %IPADDRESS% -n 1 | FIND "Minimum" >>CFConnection.txt
timeout %INTERVAL%
GOTO PINGINTERVAL
答案 0 :(得分:0)
您可以使用set /P "=output"<NUL
将文本写入CFConnection.txt,而不会换行。
set /P "=output"<NUL
与
完全相同echo output
但最后没有回车。
您还应该使用findstr
,这样您就可以将包含“loss”或“minimum”的行与一个命令进行匹配,这样您就不会尝试将两个ping结果混合成一个可疑的欺骗日志条目和背信弃义。最后,只要您想捕获命令的输出,请使用for /f
循环。
@echo off
setlocal
set "IP=192.168.4.1"
set "interval=60"
:loop
>>CFConnection.txt (
(
set /P "=%date% %time%, "<NUL
for /f "delims=" %%I in ('ping -n 1 %IP% ^| findstr /i "loss minimum"') do (
set /P "=%%I "<NUL
)
echo;
)
)
timeout %interval%
goto loop