自動獲取本地連接及IPv4地址修改盖灸、雙IPv4地址添加

bat文件處理

bat文件處理實例
自動獲取本地連接及IPv4地址修改蚁鳖、雙IPv4地址添加


前言

對公司內(nèi)部網(wǎng)站或者固定IPv4地址的產(chǎn)品開發(fā)經(jīng)常遇到修改IP的問題,每次使用均通過手動方式非常麻煩糠雨,并且還得記住固定的IPv4地址才睹。對開發(fā)人員還好修改IP是常有的事,但一旦產(chǎn)品量產(chǎn)交于其它部門進行使用測試便會出現(xiàn)IPv4地址不對應(yīng)的問題甘邀,往往其它部門反饋的問題卻總是上位機或者下位機有問題琅攘,讓人頭禿。
本文可實現(xiàn)在windows下的bat文件對本地IP地址進行保存至當前bat文件中以及設(shè)置IP地址 自動獲取IP地址等功能松邪。


一坞琴、Windows命令行CMD基本語法

語法幫助

對于所有的CMD命令均可以同時使用 命令 /?進行獲取幫助。也可以直接用 help 命令.
首先進入Windows的命令行就要進行如下操作:
按住 win +r鍵 輸入 cmd 然后回車
[圖片上傳失敗...(image-e99b16-1655605490569)]
然后輸入 ping /? 進行查詢ping命令的使用幫助逗抑。
[圖片上傳失敗...(image-a5e7de-1655605490569)]

變量賦值

直接用set操作 無需定義變量類型

set j=0

標題循環(huán)剧辐、條件判斷

條件判斷的語句語法如下:

IF  [判斷條件]  (
       [命令1]
    ) ELSE (
       [命令2]
    )

判斷條件可以為常規(guī)的變量 k==1等,也可以為字符串 string1==string2邮府。
比較條件也可以用下邊的語法進行表示

EQU - 等于
NEQ - 不等于
LSS - 小于
LEQ - 小于或等于
GTR - 大于
GEQ - 大于或等于

比較常用的還用來進行文件是否存在的一種判斷荧关,如下 如果文件1.txt存在就進行刪除

IF EXIST 1.txt del 1.txt 

FOR循環(huán)語句常用來輪訓一個文件中的每一行,或者每一行字符串中以某些符號進行分割然后進行輪訓查找褂傀。
基本語法如下
輪訓輸出1.txt中的每一行字符串忍啤,tokens表示%%t變量賦值為通配符*所匹配到的值。

for /f "tokens=*" %%t in (1.txt) do (
echo %%t
)

變量的調(diào)用

賦值時可以直接將變量值j賦值給變量b仙辟,需要調(diào)用時需要添加%j%同波。

set j=0
set b=j
set con%j%=1

當添加變量延遲操作時需要使用鳄梅!j!進行變量調(diào)用

setlocal enabledelayedexpansion
set j=0
set b=j
set con!j!=1

其它的使用語法可參考別人的博客CMD基本語法

二未檩、bat文件處理代碼解讀

1.初始操作

代碼如下:

@set "interipp=192.168.31.142"
@set "intermaskk=255.255.255.0"
@set "intergatee=192.168.31.1"
@set "interdns11=192.168.31.1 "
@set "interdns22=172.16.3.200"
@echo off
@cls

剛開始這里保存的是我們用來記錄本機IP的地址戴尸,放在這里是為了不使用!以及轉(zhuǎn)義字符^冤狡,因為這里字符在生成bat文件時會被系統(tǒng)默認給轉(zhuǎn)義成變量值從而是的重新生成bat文件不能使用孙蒙。(這種調(diào)試了很久,網(wǎng)上沒有好的辦法去處理筒溃。)

2.獲取本地連接名稱

::------------------------------------先跳轉(zhuǎn)到這里---------------------------------------------------------------
::獲取網(wǎng)絡(luò)連接名稱
:GETNAME
@if exist 10.bat del 10.bat
@cls
@(for /f "tokens=3*" %%a in ('netsh interface show interface^|more +2') do @echo,%%b)>".\network.txt"
@set j=0
@echo 獲取到以下本地連接:
@for /f "tokens=*" %%i in (.\network.txt) do (
    set /a j+=1
    call set 網(wǎng)絡(luò)連接%%j%%=%%i
    call set ethernetAdapter=%%i
    call echo %%ethernetAdapter%%
)
@del /s /q /f .\network.txt

上邊的代碼實現(xiàn)對本地存在的網(wǎng)絡(luò)連接進行查詢马篮,并且保存在一個network.txt中方便進行輸出打印沾乘,輸出打印完畢刪除文件即可(最后一行)怜奖。

3.打印本地網(wǎng)絡(luò)連接

::選擇需要設(shè)置的本地連接
@cls
@echo ----------------------------------------------------------------
@echo ----------------------------------------------------------------
@echo 請選擇需要設(shè)置的網(wǎng)絡(luò)連接:
@for /l  %%i in (1,1,!j!) do (
echo 請按 %%i設(shè)置   "!網(wǎng)絡(luò)連接%%i!"
)
echo.

3.選擇要操作的本地連接

::根據(jù)選擇賦值
set /p KEYSET= 已選擇:
@cls
@for /l  %%i in (1,1,!j!) do (
if %KEYSET% == %%i  set name=!網(wǎng)絡(luò)連接%%i!
if %KEYSET% == %%i  echo 已選擇  "!網(wǎng)絡(luò)連接%%i!"
)
goto SET

添加這一部分是因為有電腦安裝虛擬機或者無線連接會產(chǎn)生多個本地連接,只有你選擇正確的本地連接才能設(shè)置正確的IP連接網(wǎng)絡(luò)翅阵。

4.IPv4修改類型設(shè)置

代碼如下(示例):

::配置選擇 常規(guī)用戶修改以下配置足夠
:SET
@echo ----------------------------------------------------------------
@echo ----------------------------------------------------------------
echo 設(shè)置[內(nèi)網(wǎng)IP]請按 1
echo 設(shè)置[自動IP]請按 2
echo 設(shè)置雙IP 本機+固定請按 3
echo.
set /p KEY= 已選擇:
if %KEY% == 1 goto ONE
if %KEY% == 2 goto TWO
if %KEY% == 3 goto THREE

5.設(shè)置局域網(wǎng)固定IPv4

:SET
@echo ----------------------------------------------------------------
@echo ----------------------------------------------------------------
echo 設(shè)置[局域網(wǎng)IP]請按 1
echo 設(shè)置[自動IP]請按 2
echo 設(shè)置[固定]請按 3
echo 設(shè)置雙IP 本機+[固定]請按 4
echo 記錄當前本機IP為[局域網(wǎng)IP]請按 d
echo.
@set /p KEY= 已選擇:
if %KEY% == 1 goto ONE
if %KEY% == 2 goto TWO
if %KEY% == 3 goto THREE
if %KEY% == 4 goto FOUR
if %KEY% == 5 goto FIVE
if %KEY% == d goto D

上邊是用來選擇跳轉(zhuǎn)用的歪玲,選擇d則會跳轉(zhuǎn)到保存當前IP的選項。

6.動態(tài)分配IPv4

代碼如下(示例):

:TWO
echo 正在進行動態(tài)IP設(shè)置掷匠,請稍等...   
echo. IP 地址正在從DHCP自動獲取...   
netsh interface ip set address "%name%" dhcp   
echo. DNS地址正在從DHCP自動獲取...   
netsh interface ip set dns "%name%" dhcp   
echo ----   
echo 全部設(shè)置完成!   
pause  
goto end

這部分很普通網(wǎng)上多的是不在介紹了

7.添加雙IPv4

代碼如下(示例):

:THREE
echo 設(shè)置7 正在自動添加 IP ......
netsh interface ip add address name="%name%"   addr=172.29.4.100 mask=255.255.0.0   
echo IP地址 /子網(wǎng)掩碼 /網(wǎng)關(guān)設(shè)置完成
pause
goto end

8.在當前bat文件中保存本地IPv4地址

這部分會先去獲取本地連接IP地址滥崩,然后跳轉(zhuǎn)

for /f "tokens=3* delims=: " %%a in ('netsh interface ip show config "%adapter%"^|find /i "IP 地址"') do (
set defaultip=%%a
goto NEXT1
)
:NEXT1
@for /f "tokens=4* delims=) " %%a in ('netsh interface ip show config "%adapter%"^|find /i "掩碼"') do (
set defaultmask=%%a
goto NEXT2
)

下邊這一部分會將當前bat文件進行讀取輸出,輸出同時進行匹配DNS2所在行的字符串讹语,如果存在則清空所有輸出钙皮,將IP字段進行單獨輸出(為了規(guī)避嘆號以及其它轉(zhuǎn)義字符在生成bat文件時被替換的問題,這也是為什么將本地IP地址放在bat文件的前幾行的原因)顽决,然后后邊的輸出與當前bat文件內(nèi)容一直短条。

@(for /f "tokens=* delims=" %%t in ('findstr  .* %infile%') do (
@for /f "tokens=1,2* delims= " %%i in ("%%t") do (
@rem 匹配dns1
@if "%%~j"=="interdns22=%interdns22%" (
@if exist %outfile% del %outfile%
@echo @set "interipp=%defaultip%">>%outfile%
@echo @set "intermaskk=%defaultmask%">>%outfile%
@echo @set "intergatee=%defaultgate%">>%outfile%
@echo @set "interdns11=%defaultdns1%">>%outfile%
@set /a cnt=1
)
)

最后還要一個跳轉(zhuǎn),生成一個新的bat文件執(zhí)行刪除當前bat文件并將新生成的bat文件重命名為原bat文件名才菠。

echo 保存完成
goto JUMP
::生成一個新的bat文件進行舊文件的刪除以及新文件的命名
:JUMP
@echo. >10.bat
@echo if exist %infile% del %infile%>>10.bat
@echo ren 3.bat %infile%>>10.bat
@echo %infile%>>10.bat
@echo if exist 10.bat del 10.bat>>10.bat
@echo exit>>10.bat
10.bat
exit

源碼文件

新建一個.TXT的文檔茸时,將.TXT后綴修改為.bat,然后右鍵編輯或者用其它編輯器打開,將上述所有代碼復制進去赋访,最后運行的時候以管理員身份運行即可可都。
源碼文件已經(jīng)上傳,可下載設(shè)置蚓耽。
資源文件:IPv4自動修改及保存


總結(jié)

bat文件處理很方便渠牲,一些基本的添加刪除文件操作以及電腦的設(shè)置均可以通過此進行設(shè)置,比如自動關(guān)機步悠、添加定時任務(wù)等签杈。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市贤徒,隨后出現(xiàn)的幾起案子芹壕,更是在濱河造成了極大的恐慌汇四,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,331評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件踢涌,死亡現(xiàn)場離奇詭異通孽,居然都是意外死亡,警方通過查閱死者的電腦和手機睁壁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,372評論 3 398
  • 文/潘曉璐 我一進店門背苦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人潘明,你說我怎么就攤上這事行剂。” “怎么了钳降?”我有些...
    開封第一講書人閱讀 167,755評論 0 360
  • 文/不壞的土叔 我叫張陵厚宰,是天一觀的道長。 經(jīng)常有香客問我遂填,道長铲觉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,528評論 1 296
  • 正文 為了忘掉前任吓坚,我火速辦了婚禮撵幽,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘礁击。我一直安慰自己盐杂,他們只是感情好,可當我...
    茶點故事閱讀 68,526評論 6 397
  • 文/花漫 我一把揭開白布哆窿。 她就那樣靜靜地躺著链烈,像睡著了一般。 火紅的嫁衣襯著肌膚如雪更耻。 梳的紋絲不亂的頭發(fā)上测垛,一...
    開封第一講書人閱讀 52,166評論 1 308
  • 那天,我揣著相機與錄音秧均,去河邊找鬼食侮。 笑死,一個胖子當著我的面吹牛目胡,可吹牛的內(nèi)容都是我干的锯七。 我是一名探鬼主播,決...
    沈念sama閱讀 40,768評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼誉己,長吁一口氣:“原來是場噩夢啊……” “哼眉尸!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,664評論 0 276
  • 序言:老撾萬榮一對情侶失蹤噪猾,失蹤者是張志新(化名)和其女友劉穎霉祸,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體袱蜡,經(jīng)...
    沈念sama閱讀 46,205評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡丝蹭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,290評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了坪蚁。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片奔穿。...
    茶點故事閱讀 40,435評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖敏晤,靈堂內(nèi)的尸體忽然破棺而出贱田,到底是詐尸還是另有隱情,我是刑警寧澤嘴脾,帶...
    沈念sama閱讀 36,126評論 5 349
  • 正文 年R本政府宣布男摧,位于F島的核電站,受9級特大地震影響统阿,放射性物質(zhì)發(fā)生泄漏彩倚。R本人自食惡果不足惜筹我,卻給世界環(huán)境...
    茶點故事閱讀 41,804評論 3 333
  • 文/蒙蒙 一扶平、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蔬蕊,春花似錦结澄、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,276評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至猜扮,卻和暖如春勉吻,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背旅赢。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評論 1 272
  • 我被黑心中介騙來泰國打工齿桃, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人煮盼。 一個月前我還...
    沈念sama閱讀 48,818評論 3 376
  • 正文 我出身青樓短纵,卻偏偏與公主長得像,于是被迫代替她去往敵國和親僵控。 傳聞我的和親對象是個殘疾皇子香到,可洞房花燭夜當晚...
    茶點故事閱讀 45,442評論 2 359

推薦閱讀更多精彩內(nèi)容