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

news2025/1/18 3:45:23

概述

  • 作用
  • 修改 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 enabledelayedexpansion

title 更改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%" >nul
    if errorlevel 1 (
        echo %%a >> "%hostsFile%"
        echo 添加: %%a
    ) else (
        echo 已存在: %%a
    )
)

::结束任务
goto end


:delete_entries
echo 正在删除条目...


:: 逐行读取条目并删除
for /f "usebackq tokens=*" %%a in ("%entriesFile%") do (
    echo 清除: %%a
    findstr /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.coloradmin.cn/o/2256311.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

无人机舵机驱动控制原理!

一、舵机的基本结构和工作原理 舵机是一种位置(角度)伺服的驱动器,由电子控制与机械控制部分组成。当控制信号输入时,电子控制部分会根据控制器的指令调节直流电机输出的旋转角度和速度,由机械部分转化为控制面的位移…

gozero项目迁移与新服务器环境配置,包含服务器安装包括go版本,Nginx,项目配置包括Mysql,redis,rabbit,域名

迁移 **GoZero** 项目到新服务器并配置相关环境涉及多个步骤。以下是一个系统化的指南,涵盖服务器环境安装、数据库和缓存配置、项目部署以及域名绑定。 ### 步骤概述 1. **服务器环境配置** - 安装 Go 语言环境 - 安装 Nginx - 安装 MySQL 和 Redis -…

华为交换机配置基础

文章目录 华为设备配置视图ensp入门拓扑搭建和IP地址配置IP地址和网关静态路由配置动态路由RIP路由配置 OSPF配置单臂路由【实现不同vlan之间互联互通】console 密码模式AAA认证的原理和配置telnet 远程登录 华为设备配置视图 华为设备登录配置 <AR> system-view //进入…

善于运用指针--通过指针引用数组

一个数组包含若干个元素&#xff0c;每个元素在内存中占用储存单元&#xff0c;它们都有相应的地址&#xff0c;指针变量能指向变量&#xff0c;也可以指向地址。所谓数组元素的地址&#xff0c;也就是数组元素的指针。 文章目录 前言一、在引用数组元素时指针的运算二、通过指…

word poi-tl 图表功能增强,插入图表折线图、柱状图、饼状图

目录 问题解决问题poi-tl介绍 功能实现引入依赖功能介绍 功能实例饼图模版代码效果图 雷达图&#xff08;模版同饼图&#xff09;代码效果图 柱状图&#xff08;模版同饼图&#xff09;代码效果图 附加CustomCharts 工具类CustomChartSingleSeriesRenderData 数据对象CustomCha…

QT数据库SQLite:QsqlTableModel使用总结

数据库连接、数据模型与界面组件所涉及的类之间的关系如下所示&#xff1a; 数据库类 QSqlDatabase 类用于建立与数据库的连接&#xff0c;QSqlDatabase 对象就表示这种连接。QSqlDatabase 类的功能主要分为三大部分&#xff1a; 1、创建数据库连接&#xff0c;即创建 QSqlDat…

[MoeCTF 2022]what are y0u uploading?

[BJDCTF 2020]签个到? 解压后发现两个文件夹&#xff0c;进去发现有个压缩包 这里压缩包打不开&#xff0c;就直接给改成png后缀 发现变成了一个二维码 然后用QR工具扫一下 得到flag NSSCTF{i_am_a_tupian} [MoeCTF 2022]what are y0u uploading&#xff1f; 右击查看源码…

查询品牌涉及两张表(brand、brand_admin_mapping)

文章目录 1、BrandController2、AdminCommonService3、BrandApiService3、BrandCommonService4、BrandSqlService涉及的表SQL 查询逻辑参数处理执行查询完整 SQL 逻辑参数映射总结 SELECT * FROM brand_admin_mapping WHERE admin_id 252SELECT * FROM brand WHERE id 44SELE…

k8s 为什么需要Pod?

Pod&#xff0c;是 Kubernetes 项目中最小的 API 对象&#xff0c;更加专业的说&#xff0c;Pod&#xff0c;是 Kubernetes 项目的原子调度单位。 Pod 是 Kubernetes 里的原子调度单位。这就意味着&#xff0c;Kubernetes 项目的调度器&#xff0c;是统一按照 Pod 而非容器的资…

如何在Ubuntu中利用repo和git地址下载获取imx6ull的BSP

01-设置git的用户名和邮箱 git config --global user.name "suwenhao" git config --global user.email "2487872782qq.com"这里不设置的话后面在第5步的repo配置中还是会要求输入&#xff0c;而且以后进行相关操作都要输入&#xff0c;不妨现在就进行配置…

【机器学习】基于SVM、逻辑回归和CNN的手写数字识别:性能对比与应用分析

基于SVM、逻辑回归和CNN的手写数字识别&#xff1a;性能对比与应用分析 1 基于SVM对手写数字识别2 基于逻辑回归对手写数字进行识别3 基于CNN对手写数字进行识别总结对比分析 1 基于SVM对手写数字识别 在使用SVM方法对手写数字进行识别的时候&#xff0c;我采用了一对多&#…

Elasticsearch ILM 故障排除:常见问题及修复

作者&#xff1a;来自 Elastic Stef Nestor 大家好&#xff01;我们的 Elasticsearch 团队正在不断改进我们的索引生命周期管理 (index Lifecycle Management - ILM) 功能。当我第一次加入 Elastic Support 时&#xff0c;我通过我们的使用 ILM 实现自动滚动教程快速上手。在帮…

【html网页页面009】html+css制作学校官网主题网页制作含登录(5页面附效果及源码)

校园网站主题网页制作 &#x1f964;1、写在前面&#x1f367;2、涉及知识&#x1f333;3、网页效果&#x1f308;4、网页源码4.1 html4.2 CSS4.3 源码获取w034学校网页源码及介绍链接 &#x1f40b;5、作者寄语 &#x1f964;1、写在前面 学校网站主题的网页 一共5个页面 网…

JavaScript柯里化和组合函数以及严格模式介绍

柯里化介绍 柯里化的结构 简化版本 让函数的职责单一 柯里化的复用 对某些逻辑进行复用 打印日志的柯里化 自动化柯里化函数 实现柯理化函数 1.柯里化函数是对函数进行处理的方法&#xff0c;所以参数就为一个函数&#xff0c;这里取名w为fn 2.定义一个函数curried&#xff0…

查看 tomcat信息 jconsole.exe

Where is the jconsole.exe? location: JDK/bin/jconsole.exe

【SpringBoot】Day11-09 参数配置化

为什么需要参数配置化 对于这些配置信息是直接硬编码&#xff0c;写死在java程序中的&#xff0c;存在几个问题&#xff1a; 如果这些参数发生变化了&#xff0c;就必须在源程序代码中改动这些参数&#xff0c;然后需要重新进行代码的编译&#xff0c;将Java代码编译成class字节…

企业迎接现场网络安全检查准备

企业安全负责人一听到主管单位单位要来现场进行网络安全就紧张可是对于不少重点企业来说&#xff0c;现场检查又是不可避免的&#xff0c;今天就谈谈企业如何准备网络安全检查。 网络安全现场检查类型&#xff1a; 常规检查&#xff1a;年度例行重要信息系统网络安全检查&…

UE5.5 Geometry库平面切割原理分析

平面切割--FMeshPlaneCut 平面定义: 面上一个点 法线 算法流程如下 求几何体所有顶点和面的有向距离(Signs) Sign计算&#xff1a; float Sign (VertexPos - PlaneOrigin).Dot(PlaneNormal); 遍历所有几何体所有交叉边, 进行SplitEdge 对于位于切割面两侧的交叉边(Sign…

VideoConvertor.java ffmpeg.exe

VideoConvertor.java ffmpeg.exe 视频剪切原理 入点 和 出点 选中时间点&#xff0c;导出

react hooks讲解--通俗易懂版

面试必备&#xff01; useState:状态管理 useState有两个状态&#xff0c;一个是status&#xff0c;一个是setStatus setStatus修改数据后&#xff0c;会触发<App/>的re-render 什么是re-render? re-render:重新渲染&#xff0c;re-render并不意味着dom会更新&#x…