[¡Ayuda!, beca en Juego] Que hace este script Netsh interface ... con condicional dependiente del errorlevel ?

es que el tema es que netsh interface requiere que el nombre de la interfaz sea la misma que tiene en la máquina, por ejemplo ejecute el netsh interface show interface y ahí ve la lista de las que tiene disponibles (lo mismo que si ejecutara ncpa.cpl, ahí se ven los nombres de las interfaces también).

Si claro, en el script el nombre de la interfaz es "Ethernet ", pero podria ser "cualquier nombre":

Código:
@echo off
Netsh interface ipv6 show interface "El nombre de la interfaz que se quiere evaluar" > nul 2>&1
if errorlevel 1 (
    echo mensaje_B
) else (
    echo mensaje_A
)

De hecho si uno coloca en el .bat el nombre de una interfaz que no existe en el compu, sigue mostrando el mensaje_A

A que apuntas con el aporte que hiciste ? ,no me quedo claro
 
Ya abrieron este mismo tema en stackoverflow, xda developers, reddit o codeproject?

Al ser como tar urgente depronto les va mejor por alla.
No tengo cuentas por alla , Fiel a Laneros Forever !! :cool: ,.

No mentiras, va a tocar .

Ojala aparezca un Lanero que sepa cuando el errorlevel de Netsh interface ipv6 show interface "Ethernet" > nul 2>&1 , sera diferente a 0 . *


* = Alguien con una IA le puede preguntar a ver si sabe ??
 
Última edición:
Up !!, Una Beca en juego
Primero verifique qué interfaces están disponibles con el protocolo IPv6:
Código:
netsh interface ipv6 show interfaces
1702401090511.png


Luego comprobar si realmente sale la información de la interfaz "Ethernet" al ejecutar:
Código:
netsh interface ipv6 show interface "Ethernet"

Si la interfaz de red existe y está configurada con el protocolo debería salir otra lista llamada "Interface Ethernet Parameters" de lo contrario sale un mensaje diciendo que no se encuentra.

Entiendo que es posible que por alguna razón no se pueda acceder a la información de la interfaces a pesar de tener configurado el protocolo. Ahí ya tocaría entrar a mirar temas de permisos, políticas de la máquina/usuario y creo que esa no esa la idea de la prueba.

En mi equipo personal con Win11 me muestra todas las interfaces que tienen el protocolo configurado y el script me funciona correctamente:
Código:
@echo off
netsh interface ipv6 show interface "Ethernet" > nul 2>&1
if %errorlevel% == 0 (
    echo IPv6 is enabled
) else (
    echo IPv6 is disabled
)
 
  • Me encanta
Reacciones: juanitapregunta
En mi equipo personal con Win11 me muestra todas las interfaces que tienen el protocolo configurado y el script me funciona correctamente:
Código:
@echo off
netsh interface ipv6 show interface "Ethernet" > nul 2>&1
if %errorlevel% == 0 (
    echo IPv6 is enabled
) else (
    echo IPv6 is disabled
)
Bingooooooooooooooooooooooooo!!! como supiste que era %errorlevel% ??

Al parecer errorlevel es diferente a %errorlevel% , connnnnn raaaaaaa


 
Bingooooooooooooooooooooooooo!!! como supiste que era %errorlevel% ??

Al parecer errorlevel es diferente a %errorlevel% , connnnnn raaaaaaa


Uf la verdad no me había fijado, Copilot fue el que me completó el if que estaba tratando de redactar
 
  • ¡Vaya!
Reacciones: juanitapregunta
Listo el pollo ( El detalle era que errorlevel es diferente a %errorlevel%) , el script que funciona es:

Código:
@echo off
Netsh interface ipv6 show interface "Ethernet" > nul 2>&1
if %errorlevel%==0 (
    echo mensaje_A
) else (
    echo mensaje_B
)

El resultado de lo anterior es que : Cuando IPV6 esta habilitado muestra el mensaje_A y cuando esta deshabilitado muestra el mensaje_B .

La presunta respuesta correcta es: Muestra el mensaje_A cuando IPV4 é IPV6 estan habilitados

Como ven este contraargumento ? :

Esa respuesta no es correcta dado que " é " es una conjuncion copulativa y un conectivo logico que esta estableciendo que para que muestre el mensaje_A tiene que estar habilitado tanto IPV4 como IPV6 , lo cual es falso dado que para que se muestre el mensaje_A basta con que solo IPV6 este habilitado (Es irrelevante el status de IPV4)

@thanatos06 , @aliricu ,@Sorrento, @aliricu , @Gotischer , @Xtremedandi , @Otolap

Tal como esta formulado es correcta la argumentación. Yo tenia mis dudas con el errorlevel, pero lo unico que se necesita es que este habilitado el IPV6 para que de 0, no ambos. En este ejemplo Mensaje_A es IPV6 y Mensaje_B es IPV4

solo con IPV6
1702410043989.png


Con IPV4 e IPV6

1702410196797.png


Ambos dan lo mismo asi que los que formularon la pregunta, literal la defecaron.
 

Los últimos temas