He estado allí, hecho eso.
Primero verifique / espere si su red está realmente conectada en el primer lugar y si tiene TCPIP activado. (En el caso de que la conexión de Wi-Fi se realice después del inicio de sesión, es posible que su secuencia de comandos comience antes de que realmente funcione.)
La salida "ipconfig" (SIN el parámetro / all) solo mostrará las interfaces que estén UP y la dirección IP de la puerta de enlace predeterminada.
Luego haga ping a la puerta de enlace predeterminada, que debería ser su enrutador (supongo que siempre está encendido).
Luego grep la salida de "arp -a" para ver si la dirección MAC de su enrutador está allí. (Si utiliza tanto la verificación por cable como la inalámbrica para ambas direcciones MAC. Probablemente NO sean las mismas).
Esta verificación de la dirección MAC también detecta el caso en el que se encuentra en la red de otra persona donde el enrutador tiene la misma dirección IP que tiene en casa.
Y no hay necesidad de hacer esto 4 veces con retrasos (supongo que es un intento de que el HTPC deje de estar en modo de suspensión si es necesario). Solo 1 ping (que bajo Windows hace 4 pings con 1 segundo de retraso de todos modos) al enrutador es suficiente.
El enrutador responderá (para que pueda verificar el MAC) o no lo hace, en cuyo caso algo está realmente mal con la red y, de todos modos, es inutilizable.
El código a continuación se prueba en Windows 10. Estoy bastante seguro de que funcionará en cualquier versión de Windows NT.
@echo off
set mymac=ac-9e-17-96-6e-60
set delayedexpansion=on
rem Pull the default gateways from ipconfig and extract the one with a value.
rem Carefull! There is 1 extra space before the ip-address.
for /F "delims=: tokens=2 usebackq" %%a in ( `ipconfig ^| find /I "default gateway"` ) do (
if NOT "%%a."==" ." set IP=%%a
)
echo Default gateway:%IP%
rem Ping it to make sure it appears in arp -a output
ping -n 1 %IP% >nul
rem Filter the line with the ip-address and MAC from arp -a and take action if found
arp -a | find /I "%IP%" | find /I "%mymac%"
if errorlevel 1 (echo Not found: Not at home) else ( echo I'm at home)
arp -a