当前位置: 首页 > news >正文

【批处理脚本】更改Windows系统中的 hosts 解析文件

概述

  • 作用
  • 修改 Windows 系统中的 hosts 文件,可以实现 插入 或 删除 条目。该脚本允许用户以管理员权限执行,将特定的域名解析到指定的 IP 地址
  • 应用场景

非常适用于需要频繁或批量修改 hosts 文件的场景:

  • 屏蔽网站、域名重定向、DNS 污染防护
  • 广告屏蔽、临时封锁/解除封锁网站
  • 多台计算机批量配置 hosts 文件
  • 开发环境中需要灵活配置域名解析时
  • 注意事项
  • hostList.txt 文件为要操作的host条目集;每一行应该是要添加或删除的条目
  • 修改host.bat 修改批处理,根据输入的操作指引,把hostList文件里面的条目,依次【添加/删除】到 系统hosts文件中
  • !!! 文件需要管理员权限运行 !!!(因为 hosts 文件位于系统的受保护区域)
  • !!! 运行之前,最好先备份hosts文件,避免突发情况 !!!
  • hosts 路径: C:\Windows\System32\drivers\etc\hosts

应用

  1. 新建 “hostList.txt” 文件

存储要操作的host条目集,一行一条目;如下:

 # 测试环境host 【# 为注释】
127.0.0.1    www.test.com
  1. 新建 “更改host解析.txt”,并更新为 bat 后缀文件
@echo off
setlocal enabledelayedexpansiontitle 更改host解析::判断管理员权限并获取
net.exe session 1>NUL 2>NUL && (goto as
) || (goto noas
):as
goto start:noas
echo 【您还不是管理员权限,请授权执行】
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit cd /d "%~dp0"
goto start:start::定义 【列表文件、hosts文件、临时文件】 的路径
set "entriesFile=hostList.txt"
set "hostsFile=C:\Windows\System32\drivers\etc\hosts"
set "tempFile=%temp%\hosts_temp.txt"::模拟环境
::set "hostsFile=hosts"cd /d %~dp0:: 检查条目文件是否存在
if not exist "%entriesFile%" (echo 【host条目文件 %entriesFile% 不存在,请检查文件路径】goto end
):: 提示用户选择操作
echo =============== 请选择操作:    ===============
echo ===============  1: 插入hosts  ===============
echo ===============  2: 删除hosts  =============== echo.
echo.
echo 请输入您的选择[12]: 
choice /c 12 /m "请输入您的选择:" >> nul
:: 根据用户选择执行操作
if errorlevel 2 goto delete_entries & echo 2
if errorlevel 1 goto insert_entries & echo 1:insert_entries
echo 正在插入条目...::在插入条目时,先添加一个空白行,以便与现有条目分隔
echo.>> "%hostsFile%":: 逐行读取条目并插入
for /f "usebackq tokens=*" %%a in ("%entriesFile%") do (findstr /c:"%%a" "%hostsFile%" >nulif errorlevel 1 (echo %%a >> "%hostsFile%"echo 添加: %%a) else (echo 已存在: %%a)
)::结束任务
goto end:delete_entries
echo 正在删除条目...:: 逐行读取条目并删除
for /f "usebackq tokens=*" %%a in ("%entriesFile%") do (echo 清除: %%afindstr /v /c:"%%a" "%hostsFile%" > "%tempFile%" copy /y "%tempFile%" "%hostsFile%" >nul
):: 清理临时文件
if exist "%tempFile%" del "%tempFile%":end
pause
  1. 若有需要,先备份本地的 “hosts” 文件

路径:C:\Windows\System32\drivers\etc\hosts

  1. 双击运行 bat 文件即可,可在 “hosts” 文件预览如下:
    在这里插入图片描述
  2. 浏览器访问链接(假设端口号为 8888)

http://www.test.com:8888

http://www.lryc.cn/news/497863.html

相关文章:

  • fastDFS
  • 【Linux】存储
  • hadoop单机安装
  • 产品批量分类设置——未来之窗行业应用跨平台架构
  • 2024年中国各省份碳相关投资分析:区域差异与未来趋势
  • 【六足机器人】03步态算法
  • 路由VueRouter的基本使用
  • Guiding a Diffusion Model with a Bad Version of Itself
  • 快速上手!低功耗Air724UG模组软件指南:FTP示例
  • GAMES101 完结篇(笔记和作业)
  • 3D Slicer与MONAI人工智能三维影像处理
  • NC65客开单据自定义项处理以及自定义项相关介绍(超级详细带图以及代码NC65自定义项大全)
  • 责任链模式的理解和实践
  • 【大模型-向量库】详解向量库管理:连接管理、集合管理、向量管理
  • MySQL书籍推荐
  • 常见的数据结构:
  • 快速、高效的数据处理:深入了解 Polars 库
  • 【LINUX】Linux 下打包与部署 Java 程序的全流程指南
  • Spark 计算总销量
  • 矩阵置零
  • Ai编程cursor + sealos + devBox实现登录以及用户管理增删改查(十三)
  • 深度解读:生产环境中的日志优化与大数据处理实践20241116
  • docker 搭建gitlab,亲测可用
  • SpringBoot 分层解耦
  • opencv复习
  • flask-socketio相关总结
  • 2024-12-03OpenCV图片处理基础
  • 本地部署开源趣味艺术画板Paint Board结合内网穿透跨网络多设备在线绘画
  • iOS、android的app备案超简单的公钥、md5获取方法
  • SpringCloud 与 SpringBoot版本对应关系,以及maven,jdk