bat脚本之更新github的hosts
@echo off
chcp 65001
setlocal enabledelayedexpansion
set "searchText=Start"
set "replacementURL=https://ghproxy.com/https://raw.githubusercontent.com/521xueweihan/GitHub520/main/hosts"
set "hostsFile=C:\Windows\System32\drivers\etc\hosts"
rem set "hostsFile=C:\Users\86157\Documents\myscripts\demo\hosts"
set "tempFile=%TEMP%\temp_hosts.txt"
set "backupFile=%TEMP%\hosts_backup.txt"
rem 备份原始hosts文件
copy "%hostsFile%" "%backupFile%" >nul
rem 标记是否需要替换的
set "replace=0"
rem 读取hosts文件内容
(for /F "tokens=*" %%A in ('type "%hostsFile%"') do (
rem 判断是否需要替换的
if "!replace!"=="1" (
rem echo %%A
) else (
rem 检查是否匹配开始行
echo %%A | findstr /i /c:"!searchText!" >nul
if !errorlevel!==0 (
rem 找到开始行,开始替
set "replace=1"
rem echo %%A
) else (
rem 未找到开始行,原样输
echo %%A
)
)
)) > "%tempFile%"
rem 下载替换内容并追加到临时文件
curl -s "%replacementURL%" >> "%tempFile%"
rem 将临时文件替换原始hosts文件
move /y "%tempFile%" "%hostsFile%" >nul
ipconfig /flushdns
echo.
echo 替换完成,按任意键关闭
echo.
pause
修改hosts文件需要管理员权限,所以使用管理员身份执行脚本才能起作用,为了方便使用和分发,还可以使用bat转exe软件,将脚本转换成可执行文件
下载地址:https://github.com/TailendWong/nav/tree/gh-pages/software
里面的hostsUpdate.exe文件