سؤال

هذا مقتطف من البرنامج النصي للتشغيل الآلي الخاص بي للتصوير من خادم معين يعتمد على شبكة محلية ظاهرية.يتحقق البرنامج النصي من عنوان IP الخاص به وما هي الشبكة المحلية الظاهرية الموجودة فيه ثم يستخدمه للاتصال بخادم معين.مشكلتي هي أنني أتلقى خطأ "إذا كان غير متوقع في هذا الوقت".الرجاء المساعدة.

: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
هل كانت مفيدة؟

المحلول

هناك الكثير من الفتحات أكثر من إغلاق الأقواس.لذلك cmd.exe فشل في تحديد الكتلة لكل منهما if في رمز الدفعة الخاص بك، هناك خطأ نحوي بسيط يسهل حله.

@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
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top