Archivo por lotes que se conecta al servidor basado en VLAN
-
21-12-2019 - |
Pregunta
Este es un fragmento de mi script de automatización para obtener imágenes de un servidor en particular basado en VLAN.El script comprueba su IP y con qué VLAN se encuentra en luego usando que se conecta a un servidor en particular.Mi problema es que estoy obteniendo un error "Si es inesperado en este momento".Por favor ayuda.
:getvlan
for /f "tokens=2 delims=:" %%a in ('ipconfig ^| find "IPv4 Address"') do set IP=%%a
for /f "tokens=3 delims=." %%j in ('echo %IP%') do set vlan=%%j
if %vlan% GEQ 100 (if %vlan% LEQ 119 (
set servernowack=server1
set seshtype=M
) if %vlan% GEQ 130 (if %vlan% LEQ 139 (
set servernowack=server2
set seshtype=D
) if %vlan% GEQ 140 (if %vlan% LEQ 149 (
set servernowack=server3
set seshtype=D
) if %vlan% GEQ 150 (if %vlan% LEQ 159 (
set servernowack=server4
set seshtype=M
) if %vlan% GEQ 160 (if %vlan% LEQ 169 (
set servernowack=server5
set seshtype=D
) else (
goto fail
)
goto getserverip
Solución
Hay mucha más apertura que paréntesis de cierre.Por lo tanto, cmd.exe
no determina el bloque para cada if
en su código de lote, se fácilmente se puede resolver un error de sintaxis simple.
@echo off
:getvlan
for /f "tokens=2 delims=:" %%a in ('%windir%\system32\ipconfig.exe ^| %windir%\system32\find.exe "IPv4 Address"') do set IP=%%a
for /f "tokens=3 delims=." %%j in ('echo %IP%') do set vlan=%%j
if %vlan% GEQ 100 (
if %vlan% LEQ 119 (
set servernowack=server1
set seshtype=M
goto getserverip
)
)
if %vlan% GEQ 130 (
if %vlan% LEQ 139 (
set servernowack=server2
set seshtype=D
goto getserverip
)
)
if %vlan% GEQ 140 (
if %vlan% LEQ 149 (
set servernowack=server3
set seshtype=D
goto getserverip
)
)
if %vlan% GEQ 150 (
if %vlan% LEQ 159 (
set servernowack=server4
set seshtype=M
goto getserverip
)
)
if %vlan% GEQ 160 (
if %vlan% LEQ 169 (
set servernowack=server5
set seshtype=D
goto getserverip
)
)
echo Error: Failed to determine vlan!
goto :EOF
:getserverip
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow