我正在尝试使用此代码使我的工作更轻松,但我有库存。 希望有人可以帮忙。
代码保存日期和时间,保存ping,但是当它进入for循环时,cmd会将我拒之门外。
@echo off
:ping1
Title SAVES?
ECHO %date% - %time%
DATE /t > check_ping.txt
TIME /t >> check_ping.txt
ping -n 4 10.0.0.1
ping -n 4 10.0.0.1 >> check_ping.txt
for /f "Delims=Received ", %%a in (check_ping.txt) do (
set TEST=%%a
)
if &TEST& > 2 goto correct
cls
color c7
echo WRONG
:correct
cls
color 27
echo CORRECT
else
Pause
goto ping1
我希望输出会根据ping的输出为屏幕着色。 如果我收到的信号多于2,它将使屏幕的颜色变为绿色;否则,它将使屏幕的颜色变为红色。
答案 0 :(得分:0)
可能还有一些改进要做,但是您可以进行以下操作:
@echo off
:ping1
title SAVES?
echo %date% - %time%
date /t>check_ping.txt
time /t>>check_ping.txt
ping -n 4 10.0.0.1
ping -n 4 10.0.0.1>>check_ping.txt
for /f "tokens=6,7" %%a in (check_ping.txt) do (
if "%%a"=="=" (
if %%b GEQ 2, (
cls
color 27
echo CORRECT
) else (
cls
color c7
echo WRONG
)
)
)
pause
goto ping1
如果您只想ping一次而不是两次,则可以替换第7-8行(并删除第4行:echo %date% - %time%
):
ping -n 4 10.0.0.1
ping -n 4 10.0.0.1>>check_ping.txt
像这样:
ping -n 4 10.0.0.1>>check_ping.txt
type check_ping.txt
ping -n 4 localhost>nul
这应该在3秒钟后立即显示全部ping(到ping的时间),只是要确保您要进行的两次ping是相同的,而不是2次不同(第一个可以平均80毫秒)并且附加到文件的位置可能是81ms。)
我还建议写一些类似ping -n 4 10.0.0.1
的东西,而不要写ping -n 4 -l 1 10.0.0.1
,其中-l 1
是应该发送多少个字节ip以减少网络使用情况(如果您已经变慢的话)