기본적으로 ping 결과가 포함 된 텍스트 파일을 읽고 특정 문자열을 감지하여 다른 텍스트 파일에 복사합니다. 복사하려는 문자열은 예제의 굵은 글꼴입니다.텍스트 파일에서 문자열을 읽고 배치 파일을 사용하여 다른 텍스트 파일에 복사
ENVOI 디 UNE requte '핑'SUR star.c10r.facebook.com [31.13.81.17] AVEC 32 개 옥텟 드 donn,esÿ : R,ponse 드 31.13.81.17ÿ : = 32 옥텟 Paquetsÿ : 임시 직원 = 77 MS TTL = 240
Statistiques 핑 31.13.81.17 부어 다시 우리 ‡ = 1, perdus = 0 (perte 0 %), 특사의 ,s = 1, Dur,e approximative 데 boucles 최소 밀리 초 : 최소 = 77ms, 최대 = 77ms, 모이엔 = 77ms
이 프로그램을 실행하려고했지만 "resultat"변수가 결과에 나타나지 않습니다.
@echo off
setlocal enabledelayedexpansion
set OUTPUT_FILE=result.txt
>nul copy nul %OUTPUT_FILE%
for /f %%i in (testservers.txt) do (
set SERVER_ADDRESS=ADDRESS N/A
for /f "tokens=1,2,3,4" %%a in ('ping -n 1 %%i ^&^& echo SERVER_IS_UP') do (
if %%a==R,ponse set resultat="%%b %%c %%d"
)
echo %%i [!SERVER_ADDRESS::=!] is resultat >>%OUTPUT_FILE%
)
감사합니다. ,
@echo off
setlocal enabledelayedexpansion
set OUTPUT_FILE=result.txt
for /f %%i in (testservers.txt) do (
if not exist %OUTPUT_FILE% type NUL>%OUTPUT_FILE%
for /f "tokens=2 delims=:" %%a in ('ping -n 1 %%i ^| find "TTL="') do (
if errorlevel 0 set resultat=UP: %%a
)
echo %%i is !resultat! >> %OUTPUT_FILE%
set resultat=DOWN
)
나는 "TTL"가 발견 된 경우에만 변경됩니다 것으로 나타났습니다 때문에 나는, 아래에 "resultat"의 기본 값을 설정 :
감사 매트의 도움 @, 나는 내 코드를 편집 할 수 있습니다 즉 서버가 작동 중임을 의미합니다. 발견되지 않으면 프로그램은 DOWN 인 "resultat"의 기본값을 표시합니다. "octets = 32 temps = 77 ms TTL = 240"섹션은 서버가 통계를 표시하기 위해 UP으로 표시된 경우에만 표시됩니다.
가여러분의 도움에 감사드립니다 옥텟 = 32 개 임시 직원.www.google.com가 가동 : 옥텟 = 32 명 = 470, 임시 MS TTL = 42
www.facebook.com가 UP이다 옥텟 = 32 명 = 326, 임시는 MS 결과는 다음과 같이 인 TTL = 241
192.168.1.15은 UP입니다 : <이 1ms TTL = 128
10.21.107.90가 아래로
왜 '^ &^& 에코 SERVER_IS_UP'와'!의 SERVER_ADDRESS :: =!'인가? 두 가지 모두 영향을주지 않습니다. – Endoro
@Endoro 나는 두 부분을 삭제했다. 왜냐하면 사실 영향이 없기 때문이다. 고맙습니다. – Ouss