IP地址自動(dòng)設(shè)置的批處理代碼分享
批處理文件是將一系列命令按一定的順序集合為一個(gè)可執(zhí)行的文本文件,其擴(kuò)展名為BAT或者CMD。這些命令統(tǒng)稱批處理命令。
小知識(shí):可以在鍵盤(pán)上按下Ctrl+C組合鍵來(lái)強(qiáng)行終止一個(gè)批處理的執(zhí)行過(guò)程。
一般常規(guī)的批處理命令,按照自上而下的順序逐行執(zhí)行,也就是說(shuō),只有第一行命令執(zhí)行之后,才可能執(zhí)行第二行,第二行執(zhí)行之后,才可以執(zhí)行到第三行.....如此依次執(zhí)行。那么,如果對(duì)于不同的情況,需要執(zhí)行不同的既定操作,常規(guī)的執(zhí)行規(guī)則顯然是無(wú)法完成任務(wù)的,這種應(yīng)用場(chǎng)景下怎么辦呢?我們就需要引入流程跳轉(zhuǎn)的概念,即就是動(dòng)用流程跳轉(zhuǎn)語(yǔ)句goto了。流程跳轉(zhuǎn)的含義:改變默認(rèn)的執(zhí)行順序,強(qiáng)制跳轉(zhuǎn)到指定的位置執(zhí)行特定的程序塊。
為什么要把goto和冒號(hào)這兩個(gè)命令聯(lián)合起來(lái)介紹?因?yàn)樗鼈兪欠植婚_(kāi)的,無(wú)論少了哪個(gè)或多了哪個(gè)都會(huì)出錯(cuò)。goto是個(gè)跳轉(zhuǎn)命令,緊跟其之后的是標(biāo)簽名;冒號(hào)是一個(gè)標(biāo)簽標(biāo)志,緊跟其之后的是標(biāo)簽名,兩者合稱標(biāo)簽。當(dāng)程序運(yùn)行到goto時(shí),將自動(dòng)跳轉(zhuǎn)到冒號(hào)定義的部分去執(zhí)行(呵呵~試想一下,是不是分不開(kāi)?)。goto語(yǔ)句與標(biāo)簽一一呼應(yīng),在實(shí)現(xiàn)流程跳轉(zhuǎn)時(shí)相輔相成,缺一不可。
基礎(chǔ)知識(shí)介紹完畢,我們來(lái)看一個(gè)IP地址自動(dòng)設(shè)置的批處理的實(shí)例代碼
@echo off MODE con: COLS=80 lines=30 color 0b title 自動(dòng)IP By L echo ===================== echo 自動(dòng)IP By L echo ===================== rem eth //eth 為網(wǎng)卡名稱 echo 1.檢測(cè)活動(dòng)網(wǎng)卡... rem 獲取網(wǎng)絡(luò)連接名稱 @(for /f "tokens=3*" %%a in ('netsh interface show interface^|more +2') do @echo,%%b)>"network.txt" set j=0 for /f "tokens=*" %%i in (network.txt) do ( set /a j+=1 set con!j!=%%i call set eth=%%con!j!%% ) echo 當(dāng)前活動(dòng)網(wǎng)卡名稱為:%eth% set ipduan=149.32.49 rem gw //網(wǎng)關(guān) set gw=%ipduan%.1 rem netmasks //子網(wǎng)掩碼 set netmasks=255.255.255.0 rem 最大和最小IP地址 set MAXID=205 set MINID=5 echo 2.檢查ID配置... set j=0 for /f "tokens=*" %%i in (nowid.txt) do ( set /a j+=1 set con!j!=%%i call set oldid=%%con!j!%% ) if %oldid% LSS %MINID% ( echo 檢查nowid.txt文件,ID:%oldid%不能小于%MINID% goto changeerror) echo 3.生成下一個(gè)ip地址... set j=0 for /f "tokens=*" %%i in (nowid.txt) do ( set /a j+=1 set con!j!=%%i call set id=%%con!j!%% ) echo -------- echo 上一個(gè)編號(hào)為:%id% echo 上一個(gè)ip地址為:%ipduan%.%id% echo -------- set /a newid=%id%+1 if %newid% GTR %MAXID% ( echo IP段分配已達(dá)上限:%ipduan%.%MAXID%!請(qǐng)重新修改nowid.txt文件或檢查IP地址 goto changeerror ) else ( echo %newid% > nowid.txt echo 下一個(gè)編號(hào)為:%newid% ) rem ip //ip 為你想更改的IP set ip=%ipduan%.%newid% echo 下一個(gè)ip地址:%ip% echo 下一個(gè)ip地址網(wǎng)關(guān):%gw% echo 下一個(gè)ip地址掩碼:%netmasks% echo -------- echo 4.本機(jī)IP更改: %ip% rem netsh interface ipv4 set address %eth% static %ip% %netmasks% %gw% rem >nul echo. echo 5.驗(yàn)證當(dāng)前本機(jī)IP: ipconfig -all >ipconfig.txt type ipconfig.txt | find "%ip%" && goto success :changeerror echo 修改失敗,請(qǐng)手動(dòng)分配IP地址! goto :end :success echo 修改成功 goto :end :end pause echo.
- 批處理經(jīng)典入門(mén)教程!(從不懂到高手)
- windows批處理命令教程
- bat批處理 if 命令示例詳解
- 批處理 Set 命令詳解 讓你理解set命令
- BAT批處理中的字符串處理詳解(字符串截取)
- 批處理命令Start的使用介紹
- 批處理bat設(shè)置固定IP地址和自動(dòng)IP地址
- Windows下用命令行修改IP地址的方法詳解(附批處理文件)
- 批處理獲取網(wǎng)卡名稱的代碼(附修改IP、網(wǎng)關(guān)、DNS腳本)
- 獲取外網(wǎng)IP地址的批處理代碼
- 批處理、VBS實(shí)現(xiàn)自動(dòng)設(shè)置IP、默認(rèn)網(wǎng)關(guān)、DNS、WINS、IE代理(全)
相關(guān)文章
批處理 實(shí)現(xiàn)定時(shí)關(guān)機(jī)、注銷、重啟、鎖定等功能
一個(gè)可以實(shí)現(xiàn)電腦定時(shí)關(guān)機(jī)、注銷、重啟、鎖定等功能的腳本代碼,打擊可以看下好多功能是利用了系統(tǒng)的一些命令。大家可以自由的擴(kuò)展。2009-07-07