jeudi 10 août 2017

Почему батник выдает неверный результат?

Почему батник выдает неверный результат?

Батник проверяет успешен ли пинг с несколькими IP.
Если успешен выдает
A3 07.08.2017 7:30:00,15 192.168.0.60 "????? ®? 192.168.0.60: ???«® ? ©?=32 ???¬?=39¬? TTL=128"
A3 07.08.2017 7:30:00,20 192.168.0.61 "????? ®? 192.168.0.61: ???«® ? ©?=32 ???¬?=8¬? TTL=128"
A3 07.08.2017 7:30:00,26 192.168.0.62 "????? ®? 192.168.0.62: ???«® ? ©?=32 ???¬?=38¬? TTL=128"
A3 07.08.2017 7:30:00,32 192.168.0.63 "????? ®? 192.168.0.63: ???«® ? ©?=32 ???¬?=35¬? TTL=128"
A3 07.08.2017 7:30:00,37 192.168.0.64 "????? ®? 192.168.0.64: ???«® ? ©?=32 ???¬?=15¬? TTL=128"
A3 07.08.2017 7:30:04,90 192.168.0.65 "????? ®? 192.168.0.65: ???«® ? ©?=32 ???¬?=15¬? TTL=128"
если не успешен должен выдавать
A3 07.08.2017 7:30:04,49 192.168.0.60 "Error"
A3 07.08.2017 7:30:00,20 192.168.0.61 "Error"
A3 07.08.2017 7:30:00,26 192.168.0.62 "Error"
A3 07.08.2017 7:30:00,32 192.168.0.63 "Error"
A3 07.08.2017 7:30:00,37 192.168.0.64 "Error"
A3 07.08.2017 7:30:04,90 192.168.0.65 "Error"
фактически выдает при отсутствии связит с 192.168.0.65
A3 07.08.2017 7:30:00,37 192.168.0.64 "????? ®? 192.168.0.64: ???«® ? ©?=32 ???¬?=15¬? TTL=128"
A3 07.08.2017 7:30:04,90 192.168.0.65 "????? ®? 192.168.0.64: ???«® ? ©?=32 ???¬?=15¬? TTL=128"
а хотелось бы и ожидалось
A3 07.08.2017 7:30:00,37 192.168.0.64 "????? ®? 192.168.0.64: ???«® ? ©?=32 ???¬?=15¬? TTL=128"
A3 07.08.2017 7:30:04,90 192.168.0.65 "Error"
То есть подставляется результат пинга предыдущей команды.
Как исправить батник?


Сам батник:
@echo off

set IP=192.168.0.60
@for /f "tokens=1*" %%i in ('ping -n 1 %IP% ^| findstr /i "TTL Превышен"') do set n="%%i %%j"
@if defined n (goto log)
set n="Error"
@:log
@echo %n%
@echo A3 %date% %time% %IP% %n% >> ping_logA3.txt
ping -n 1 127.0.0.1 > nul

set IP=192.168.0.61
@for /f "tokens=1*" %%i in ('ping -n 1 %IP% ^| findstr /i "TTL Превышен"') do set n="%%i %%j"
@if defined n (goto log)
set n="Error"
@:log
@echo %n%
@echo A3 %date% %time% %IP% %n% >> ping_logA3.txt
ping -n 1 127.0.0.1 > nul

set IP=192.168.0.62
@for /f "tokens=1*" %%i in ('ping -n 1 %IP% ^| findstr /i "TTL Превышен"') do set n="%%i %%j"
@if defined n (goto log)
set n="Error"
@:log
@echo %n%
@echo A3 %date% %time% %IP% %n% >> ping_logA3.txt
ping -n 1 127.0.0.1 > nul

set IP=192.168.0.63
@for /f "tokens=1*" %%i in ('ping -n 1 %IP% ^| findstr /i "TTL Превышен"') do set n="%%i %%j"
@if defined n (goto log)
set n="Error"
@:log
@echo %n%
@echo A3 %date% %time% %IP% %n% >> ping_logA3.txt
ping -n 1 127.0.0.1 > nul

set IP=192.168.0.64
@for /f "tokens=1*" %%i in ('ping -n 1 %IP% ^| findstr /i "TTL Превышен"') do set n="%%i %%j"
@if defined n (goto log)
set n="Error"
@:log
@echo %n%
@echo A3 %date% %time% %IP% %n% >> ping_logA3.txt
ping -n 1 127.0.0.1 > nul

set IP=192.168.0.65
@for /f "tokens=1*" %%i in ('ping -n 1 %IP% ^| findstr /i "TTL Превышен"') do set n="%%i %%j"
@if defined n (goto log)
set n="Error"
@:log
@echo %n%
@echo A3 %date% %time% %IP% %n% >> ping_logA3.txt
ping -n 1 127.0.0.1 > nul


Aucun commentaire:

Enregistrer un commentaire