<window> 利用bat脚本,将github相关的host添加到host文件中
window系统下,利用bat语言编写的脚本,简单将访问需要的host添加到系统的dns文件中。
·
由于访问GitHub时,网络总是不太稳定,但我又特别的懒,不想老是去修改文件,才想弄这么一个小脚本,便于以后方便使用。
#主要命令:
- nslookup host [server]
#大致需要的域名 [host server]
- raw.githubusercontent.com
- github.com gist.github.com
- codeload.github.com
- github.global.ssl.fastly.net
- assets-cdn.github.com
- cloud.githubusercontent.com
#主要修改的文件 window系统下的
c:\windows\system32\drivers\etc\hosts
由于时间关系,先大致的把代码丢上来,后续在详细修改:
@echo off
::设置bash界面上显示的字符格式为:utf-8
@chcp 65001 >>nul
REM 变量延迟
setlocal enabledelayedexpansion
rem -------------------------- Main --------------------------
:Main
:: 由于bat语句对字符串的处理只处理一次,因此需要多次处理的话,得依靠循环,将字符串循环导出
set hostList='raw.githubusercontent.com github.com gist.github.com codeload.github.com github.global.ssl.fastly.net assets-cdn.github.com cloud.githubusercontent.com'
::当前路径下创建一个host_tmp.txt
set committmp=%~sdp0host_tmp.txt
::系统路径下的hosts文件
set host_etc=c:\windows\system32\drivers\etc\hosts
call :Check_host %committmp%
pause && cls
goto :Main
::程序结束
pause && exit
:Load_host
echo "查看文件内容"
type %1
goto :eof
:Add_host
type %committmp% >> %host_etc% && echo hostlist已添加
ipconfig /flushdns
goto :eof
:Check_host
set filename=%1
echo !filename!
if EXIST !filename! (
::文件存在,询问1、查看,2、add
echo host文件当前存在,请选择:
echo "1、查看文件内容"
echo "2、将当前host内容添加到系统host里"
set /p artval=" "
if !artval! equ 1 (
call :Load_host !filename!
)
if !artval! equ 2 (
call :Add_host
)
if !artval! equ "" (
exit
)
) else (
::文件不存在,询问1、nslookup
echo "host文件不存在,是否进行nslookup?"
echo "1、获取dns地址,2、不获取"
set /p val="请输入选项:"
if !val! equ 1 (
echo "ready to read,kock enter please!!!"
call :Loop_split !hostList!
)
if !val! equ 2 (
exit
)
)
goto :eof
:SaveResult
set hostid=%1
for /F "tokens=*" %%i in ('nslookup host !hostid! ^| findstr /i address') do ( set hostAddr=%%i)
set hostid_result=!hostAddr:~10! %hostid%
echo %hostid_result%
echo %hostid_result% >>!committmp!
goto :eof
:Loop_split
set string=%*
for /f "tokens=1,* delims=,' " %%i in ("%string%") do (
set tmphost=%%i
set result=%%j
)
call :SaveResult !tmphost!
if not "%result%"=="" (
call :Loop_split '!result!'
)
goto :eof
以下为我参考的相关连接,由于大致内容相似,就选个比较简略的吧:
更多推荐
已为社区贡献1条内容
所有评论(0)