利用 bat 文件制作 HOSTS 快速切換器
更新時(shí)間:2012年10月27日 11:15:24 作者:
在平時(shí)每天需要切換好幾次 HOSTS 文件,那有什么辦法可以簡化這個(gè)操作
切換 HOSTS 文件的困擾
學(xué)校里的 IPV6 免費(fèi)上,而 IPV6 下是不用翻墻的,但是有但是 IPV6 下,有一些網(wǎng)站雖然有 IPV6 的 IP 但是卻沒有域名… 所以也只能通過修改 HOSTS 文件來訪問。
另外在 IPV4 下,Google 的許多服務(wù)都需要通過修改 HOSTS 文件后才能正常訪問…
所以,在平時(shí)每天需要切換好幾次 HOSTS 文件。
那有什么辦法可以簡化這個(gè)操作?
HOSTS 切換軟件
上網(wǎng)搜索了很多軟件,但是都不是很好用,甚至都有沖動(dòng)自己做一個(gè)了。
設(shè)計(jì)的邏輯基本上是這樣的:
1、軟件保存了很多域名的 IP 地址,并且每個(gè)域名擁有一個(gè) IPV4 地址和一個(gè) IPV6 地址(會(huì)根據(jù)網(wǎng)路情況自動(dòng)判斷)
2、軟件可以保存很多方案,每點(diǎn)擊一個(gè)方案可以執(zhí)行一系列操作,例如:1、清空 HOSTS;2、增加 XXX,又例如:1、不對(duì)當(dāng)前 HOSTS 進(jìn)行修改;2、禁用 XXX
這樣子可以非常自由的控制 HOSTS 文件了。
解決方案
有一次突然想到,干嘛要這么麻煩呢?把不同的 HOSTS 文件備份一下,需要哪個(gè)就復(fù)制過去不就行了?
還是很麻煩?直接寫 bat 文件不就行了嗎?雖然不能實(shí)現(xiàn)上述的高級(jí)功能,但是也可以滿足日常需要了。
1、新建不同的 HOSTS 方案

這里我新建了三個(gè),一個(gè)是空的,一個(gè)是 IPV4 下的,一個(gè)是 IPV6 下的
2、開始寫 bat 文件
@echo *****************
@echo * HOSTS 切換器 *
@echo * 1--清空 *
@echo * 2--IPV4 *
@echo * 3--IPV6 *
@echo *****************
@choice /c 123
if errorlevel 3 goto IPV6
if errorlevel 2 goto IPV4
if errorlevel 1 goto CLEAR
:CLEAR
copy /y "C:\Windows\System32\drivers\etc\hosts.ics" "C:\Windows\System32\drivers\etc\HOSTS"
goto END
:IPV4
copy /y "C:\Windows\System32\drivers\etc\hosts.ipv4" "C:\Windows\System32\drivers\etc\HOSTS"
goto END
:IPV6
copy /y "C:\Windows\System32\drivers\etc\hosts.ipv6" "C:\Windows\System32\drivers\etc\HOSTS"
goto END
:END
這里非常容易理解,按照上面寫就行了
3、遺留問題
這里還有一個(gè)問題,操作 HOSTS 是非常危險(xiǎn)的(殺毒軟件是這么認(rèn)為的)
所以不可避免的會(huì)彈出警告窗口,沒辦法,忽略之,并添加到白名單即可
學(xué)校里的 IPV6 免費(fèi)上,而 IPV6 下是不用翻墻的,但是有但是 IPV6 下,有一些網(wǎng)站雖然有 IPV6 的 IP 但是卻沒有域名… 所以也只能通過修改 HOSTS 文件來訪問。
另外在 IPV4 下,Google 的許多服務(wù)都需要通過修改 HOSTS 文件后才能正常訪問…
所以,在平時(shí)每天需要切換好幾次 HOSTS 文件。
那有什么辦法可以簡化這個(gè)操作?
HOSTS 切換軟件
上網(wǎng)搜索了很多軟件,但是都不是很好用,甚至都有沖動(dòng)自己做一個(gè)了。
設(shè)計(jì)的邏輯基本上是這樣的:
1、軟件保存了很多域名的 IP 地址,并且每個(gè)域名擁有一個(gè) IPV4 地址和一個(gè) IPV6 地址(會(huì)根據(jù)網(wǎng)路情況自動(dòng)判斷)
2、軟件可以保存很多方案,每點(diǎn)擊一個(gè)方案可以執(zhí)行一系列操作,例如:1、清空 HOSTS;2、增加 XXX,又例如:1、不對(duì)當(dāng)前 HOSTS 進(jìn)行修改;2、禁用 XXX
這樣子可以非常自由的控制 HOSTS 文件了。
解決方案
有一次突然想到,干嘛要這么麻煩呢?把不同的 HOSTS 文件備份一下,需要哪個(gè)就復(fù)制過去不就行了?
還是很麻煩?直接寫 bat 文件不就行了嗎?雖然不能實(shí)現(xiàn)上述的高級(jí)功能,但是也可以滿足日常需要了。
1、新建不同的 HOSTS 方案

這里我新建了三個(gè),一個(gè)是空的,一個(gè)是 IPV4 下的,一個(gè)是 IPV6 下的
2、開始寫 bat 文件
復(fù)制代碼 代碼如下:
@echo *****************
@echo * HOSTS 切換器 *
@echo * 1--清空 *
@echo * 2--IPV4 *
@echo * 3--IPV6 *
@echo *****************
@choice /c 123
if errorlevel 3 goto IPV6
if errorlevel 2 goto IPV4
if errorlevel 1 goto CLEAR
:CLEAR
copy /y "C:\Windows\System32\drivers\etc\hosts.ics" "C:\Windows\System32\drivers\etc\HOSTS"
goto END
:IPV4
copy /y "C:\Windows\System32\drivers\etc\hosts.ipv4" "C:\Windows\System32\drivers\etc\HOSTS"
goto END
:IPV6
copy /y "C:\Windows\System32\drivers\etc\hosts.ipv6" "C:\Windows\System32\drivers\etc\HOSTS"
goto END
:END
這里非常容易理解,按照上面寫就行了
3、遺留問題
這里還有一個(gè)問題,操作 HOSTS 是非常危險(xiǎn)的(殺毒軟件是這么認(rèn)為的)
所以不可避免的會(huì)彈出警告窗口,沒辦法,忽略之,并添加到白名單即可
相關(guān)文章
自動(dòng)清除電腦垃圾及刪除windows默認(rèn)共享盤符的批處理bat
其實(shí)這上面好的代碼我是從網(wǎng)上查資料得來的,還是那句話,覺得不好,歡迎管理,網(wǎng)友們拍磚。2010-01-01
批處理判斷是否為管理員權(quán)限如果不是則自動(dòng)獲取管理權(quán)限
有時(shí)編寫bat批處理時(shí)會(huì)用到判斷當(dāng)前是否為管理員權(quán)限以及自動(dòng)以管理員權(quán)限運(yùn)行,在這里記錄幾個(gè)常用的方法,需要的朋友可以參考下2024-07-07
dos里執(zhí)行tracert命令只有一跳的原因及解決方法
一直以來,我在家電腦DOS里執(zhí)行Tracert命令時(shí)都只看到只有一跳的返回結(jié)果,令我非常不解。我原以為是電信運(yùn)營商那邊的問題,所以也就一直沒去追究是什么真正的原因2013-03-03
dos下通過wmic命令查看硬盤和內(nèi)存/CPU信息(windows自帶命令查看硬件信息)
這篇文章主要介紹了windows系統(tǒng)自帶命令查看硬件信息,怎樣dos命令查看硬盤和內(nèi)存/CPU信息的方法,需要的朋友可以參考下2014-05-05

