Question

Ceci est un extrait de mon script d'automatisation pour l'imagerie à partir d'un serveur particulier basé sur un VLAN.Le script vérifie son adresse IP et le VLAN dans lequel il se trouve, puis se connecte à un serveur particulier.Mon problème est que j'obtiens une erreur « si c'est inattendu à ce moment ».S'il vous plaît, aidez-moi.

: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
Était-ce utile?

La solution

Il y a beaucoup plus de parenthèses ouvrantes que fermantes.Donc cmd.exe ne parvient pas à déterminer le bloc pour chaque if dans votre code batch, une simple erreur de syntaxe facile à résoudre.

@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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top