batch-file text ping

batch file - Hacer ping en varias PC y agregar texto



batch-file (1)

Soy bastante nuevo en esto, así que por favor tengan paciencia conmigo, y si necesitan más información mía, por favor díganme. Gracias de antemano por tu ayuda.

Tengo este código que hace ping a diferentes PC y luego regresa si están en línea / fuera de línea. Quería saber si podría agregar otra columna una vez que el archivo bat haya ejecutado su prueba de ping para que tenga el nombre de la computadora al lado.

@echo off if exist C:/tools/computers.txt goto Label1 echo. echo Cannot find C:/tools/computers.txt echo. Pause goto :eof :Label1 echo PingTest executed on %date% at %time% > C:/tools/z.txt echo ================================================= >> C:/tools/z.txt for /f %%i in (C:/tools/computers.txt) do call :Sub %%i notepad C:/tools/z.txt goto :eof :Sub echo Testing %1 set state=alive ping -n 1 %1 | find /i "bytes=" || set state=dead echo %1 is %state% >> C:/tools/z.txt

El archivo bat crea un documento que muestra lo siguiente;

PingTest ejecutado el 28/07/2016 a las 13:10:28

99.1.82.28 está vivo

99.1.82.100 está vivo

ect.

Si es posible, me gustaría que se ejecute el archivo bat para que muestre esto;

El archivo bat crea un documento que muestra lo siguiente;

PingTest ejecutado el 28/07/2016 a las 13:10:28

Computer 1: 99.1.82.28 está vivo

Computer 2: 99.1.82.100 está vivo

ect.

-

Agradecería cualquier ayuda y orientación sobre esto.

Gracias.


Puedes probar esta solución:

@echo off Title Ping Test set "URLS=URLS.txt" set "LogFile=PingResults.txt" If exist %LogFile% Del %LogFile% ( echo ****************************************************** echo PingTest executed on %Date% @ Time %Time% echo ****************************************************** echo( ) > %LogFile% Setlocal EnableDelayedExpansion for /f "usebackq delims=" %%a in ("%URLS%") do ( for /f "tokens=2 delims=[]" %%b in (''ping -n 1 %%a'') do set "ip=%%b" ping -n 1 %%a>nul && set "msg=%%a : !ip! ALive ok" || set "msg=%%a : !ip! Dead failed to respond" echo !msg! echo !msg! >> %LogFile% ) ) EndLocal Start "" %LogFile% pause>nul & exit

EDITAR: el 29/07/2016 a las 12:48

Otra versión con varios colores: gracias especiales a ICARUS por la función de color (-_ °)

@echo off Rem Special thanks goes to Iracus for the color function (-_°) mode con cols=60 lines=20 Title Multi-Ping hosts Tester with Multi-colors by Hackoo set "URLS=URLS.txt" set "LogFile=PingResults.txt" If exist %LogFile% Del %LogFile% call :init echo( call :color 0E "------- Ping Status of Computers hosts -------" 1 echo( ( echo ****************************************************** echo PingTest executed on %Date% @ Time %Time% echo ****************************************************** echo( ) > %LogFile% Setlocal EnableDelayedExpansion for /f "usebackq delims=" %%a in ("%URLS%") do ( for /f "tokens=2 delims=[]" %%b in (''ping -n 1 %%a'') do set "ip=%%b" ping -n 1 %%a>nul && set "msg=%%a - !ip! ALive ok" && Call :Color 0A "!msg!" 1 || set "msg=%%a - !ip! Dead failed to respond" && Call :Color 0C "!msg!" 1 echo !msg! >> %LogFile% ) ) EndLocal Start "" %LogFile% pause>nul & exit :init prompt $g for /F "delims=." %%a in (''"prompt $H. & for %%b in (1) do rem"'') do set "BS=%%a" exit /b :color set nL=%3 if not defined nL echo requires third argument & pause > nul & goto :eof if %3 == 0 ( <nul set /p ".=%bs%">%2 & findstr /v /a:%1 /r "^$" %2 nul & del %2 2>&1 & goto :eof ) else if %3 == 1 ( echo %bs%>%2 & findstr /v /a:%1 /r "^$" %2 nul & del %2 2>&1 & goto :eof ) exit /b

EDITAR: Actualizar el 23/08/2016

http://pastebin.com/zjYwSqUM