Algo asi..
funciona de manera distinta.
@echo off
:: Completar estas variables...
set gw alternativo1=
set gw alternativo2=
ping 169.254.1.1 > nul
if %errorlevel%==0 (
echo "Todo Ok"
echo "Hay red, todo ok >> ruta_log
exit /B
)
:: Conseguir puerta de enlace...
ipconfig | find "Puerta de enlace predeterminada . . . . . 1" > %TMP%\fr.tmp
for /F "tokens=11" %%A IN (%TMP%\fr.tmp) DO set gw actual=%%A
echo Puerta de enlace actual: %gw actual%
echo Comprobando disponibilidad...
ping %gw actual%
if %errorlevel% NEQ 0 (
echo %gw actual% no disponible)
echo Comprobando disponibilidad de puertas de enlace alternativas.
ping %gw alternativo1% > nul
if %errorlevel%==0 call:ngw %gw alternativo1%
ping %gw alternativo2% > nul
if %errorlevel%==0 call:ngw %gw alternativo2%
) ELSE ( echo %gw actual disponible% & exit /B )
:ngw
route change MASK 255.255.255.0 %1 METRIC métrica IF numero_interfaz
echo Puerta de enlace actual %1
ping -n 6 127.0.0.1 > nul
exit /B
Tienes que modificar las variables del principio y la función ngw.
Lo que hace es un ping a una dirección, si responde bien dice que todo ok, si no, hace un ping al gw actual, si no funciona hace pings a los gw alternativos y si responden usa el comando route para cambiarlos.
Habra que usar un ipconfig /release o /renew ???