各位學長
想寫一個批次檔為不同網段執行不同命令
目前只知道如下寫法~但好像行不通
set /p IP=輸入IP位址:
if "%IP%" == "192.168.1.*" goto test1
goto error
:test1
echo 網段正確
pause
:error
echo 網段錯誤
pause
想請問是否辦得到呢?
謝謝
請參考
@Echo Off
SetLocal ENABLEDELAYEDEXPANSION
Set 192.168.1.*=A
Set 192.168.2.*=B
SEt 192.168.3.*=C
Set /P IP=輸入IP位址:
if defined %IP% Echo 我是%IP%&Goto :!%IP%!
Echo 沒有這個網段
pause
Exit /b
:A
Echo 跳到 A
pause
Exit /b
:B
Echo 跳到 B
pause
Exit /b
:C
Echo 跳到 C
pause
Exit /b
學長
試了一下您的寫法與我的寫法
問題點都是*
不被視作萬用字元
輸入任何ip都是"沒有這個網段"
只有輸入192.168.1(2、3).*
才會進去執行
額... 此星非彼星
我以為你是輸入192.168.1.*之類的
@Echo Off
SetLocal ENABLEDELAYEDEXPANSION
Set 192.168.1=A
Set 192.168.2=B
SEt 192.168.3=C
Set /P IP=輸入IP位址:
for /f "tokens=1-4 delims=." %%i in ("%IP%") do (
if %%l GTR 0 If %%l LEQ 255 if defined %%i.%%j.%%k Goto :!%%i.%%j.%%k!
Echo 沒有這個網段
pause
)
Exit /b
:A
Echo 跳到 A
pause
Exit /b
:B
Echo 跳到 B
pause
Exit /b
:C
Echo 跳到 C
pause
Exit /b
以上可行但有缺點,用 findstr 會更好,有空再想一個更好的方式