将文件输出到一个长字符串中

时间:2015-03-11 09:48:00

标签: batch-file cmd

无论如何都要将此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

1 个答案:

答案 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
相关问题