Цветное окно cmd с петлей FOR - PullRequest
0 голосов
/ 10 января 2019

Я пробую этот код, чтобы облегчить мне жизнь на работе, но я получил запас. Надеюсь, кто-нибудь может помочь.

Код сохраняет дату и время, сохраняет пинг, но когда он попадает в цикл 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

Я ожидал, что вывод будет окрашивать экран в соответствии с выводом пинга. Если я получу больше 2, мой экран будет окрашен в зеленый цвет, если нет, то мой экран будет окрашен в красный цвет.

1 Ответ

0 голосов
/ 12 января 2019

Вероятно, есть еще какие-то улучшения, но вот вам:

@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

Если вы хотите пропинговать один раз вместо двух, вы можете заменить строку 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 секунды (время пинга), чтобы быть уверенным, что 2 пинга, которые вы хотите сделать, одинаковы, а не 2 разных (первый может занять среднее значение 80 мс и одно добавление к файлу может быть 81 мс).
Я также предлагаю вместо ping -n 4 10.0.0.1 написать что-то вроде ping -n 4 -l 1 10.0.0.1, где -l 1 - это сколько байтов вы должны отправить на этот ip, чтобы уменьшить использование сети в случае у вас уже медленно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...