Batch para guardar un registro de cada ping realizado con la hora en una linea

Iniciado por Nucleorion, 21 Enero 2019, 10:46 AM

0 Miembros y 1 Visitante están viendo este tema.

Nucleorion

Parece que se ha arrglado poniendo entre comillas asignación y variable.

Código (dos) [Seleccionar]
set "nombre=%fecha%_%hora%"

Cuando vea que no falla pongo el script completo

Nucleorion

Lo de las comillas tampoco ha funcionado. Ahora lleva dos semanas sin fallar despues de añadir los valores al nombre del archivo en dos pasos. Las comillas de momento las he dejado.

Código (dos) [Seleccionar]

echo.
echo El test de conexion a 192.168.1.10 cada 4 segundos ha comenzado
echo.
echo ------------- NO CERRAR ESTA VENTANA -------------


REM Creamos el archivo cada vez que se ejecuta el programa con la fecha y hora en el nombre y la primera linea

set fecha=%Date:~-4%-%Date:~3,2%-%Date:~0,2%
set hora=%Time:~0,2%-%Time:~3,2%-%Time:~6,2%

REM Para concatenar y que no de problemas metemos variables y asignacion entre comillas
set nombre="%fecha%_%hora%"
echo %nombre%

REM Anadimos el nombre del archivo al archivo que creamos tras >
echo %nombre% > %nombre%.txt


REM Hacemos ping y lo anadimos poniendo la fecha delante linea a linea
:LOOPSTART
   (
     FOR /L %%i in (1,1,1) do (
       <nul (set /p tm=%date% %time:~,-3% )
       PING -n 1 192.168.1.10 | FIND "TTL"
       IF ERRORLEVEL 1 ECHO Error, Tiempo de espera agotado. No se ha podido conectar con la IP.
     )
   ) >> %nombre%.txt

REM tiempo que queremos que pase entre ping y ping en segundos
timeout 4 > NUL

GOTO LOOPSTART

pause

Nucleorion

Hoy me falló de nuevo. Segun la versión de windows parece que es un problema el que no ponga un 0 delante de la hora. A ver si así:

Código (dos) [Seleccionar]

@echo off
echo.
echo El test de conexion a 192.168.1.10 cada 4 segundos ha comenzado
echo.
echo ------------- NO CERRAR ESTA VENTANA -------------


REM Creamos el archivo cada vez que se ejecuta el programa con la fecha y hora en el nombre y la primera linea

set hour=%time:~0,2%
if "%hour:~0,1%" == " " set hour=0%hour:~1,1%
rem echo hour=%hour%
set min=%time:~3,2%
if "%min:~0,1%" == " " set min=0%min:~1,1%
rem echo min=%min%
set secs=%time:~6,2%
if "%secs:~0,1%" == " " set secs=0%secs:~1,1%
rem echo secs=%secs%

set fecha=%Date:~-4%-%Date:~3,2%-%Date:~0,2%
rem set hora=%Time:~0,2%-%Time:~3,2%-%Time:~6,2%
set hora=%hour%-%min%-%secs%

REM Para concatenar y que no de problemas metemos variables y asignacion entre comillas
set nombre=%fecha%_%hora%
echo %nombre%

REM Añadimos el nombre del archivo al archivo que creamos tras >
echo %nombre% > %nombre%.txt

REM Hacemos ping y lo anadimos poniendo la fecha delante linea a linea
:LOOPSTART
    (
      FOR /L %%i in (1,1,1) do (
        <nul (set /p tm=%date% %time:~,-3% )
        rem PING -n 1 192.168.1.10 | FIND "TTL"
        PING -n 1 google.com | FIND "TTL"
        IF ERRORLEVEL 1 ECHO Error, Tiempo de espera agotado. No se ha podido conectar con la IP.
      )
    ) >>%nombre%.txt

REM tiempo que queremos que pase entre ping y ping en segundos
timeout 4 > NUL

GOTO LOOPSTART

pause