script_tool_for_windows.bat Windows 环境下的 hosts 一键部署脚本_DOS/BAT

我们提供了一系列工具让您除了手动以 复制/粘贴 的方式部署和更新 hosts 之外,有一种方便、一键式的方式来应用我们的 hosts 。

我们现有的工具可以在下列平台上工作:
Microsoft Windows (.bat script; Qt GUI tool; console (service type) tool)

另外,我们还推荐使用跨平台的 Hozz 来管理、自动更新 hosts 。

目前,我们共有:

Hozz: 跨平台的 hosts 自动 管理/更新 工具。是 @ppoffice 的项目。

项目主页
项目Github主页 https://github.com/racaljk/hosts/tree/master/hosts_tools
HostTool: Windows 环境下的 hosts 自动更新应用,使用 C++ 构建, GUI 基于 Qt 。由 @racaljk 贡献。
HostToolforMac: Mac 环境下的 hosts 自动部署更新应用(适用于 OS X 10.10 或以上),基于 Swift 开发。由 @ZzzM 贡献。
HostsToolforWindows: Windows console环境下的 hosts 自动更新应用(作为系统服务),使用 C++ 构建。由 @Too-Naive 贡献。
script_tool_for_windows.bat: Windows 环境下的 hosts 一键部署脚本,由 @redapple0204 与 @lizongzeshunshun 贡献。以及 @lideming 提供的重要更新。

@echo off
if defined converted goto :converted

set ConverterPath=%temp%\HostsGeter_CodeConverter.vbs
set ConverterOutput=%temp%\HostsGeter_GBK.bat

echo inputpath="%~0" >%ConverterPath%
echo outputpath="%ConverterOutput%" >>%ConverterPath%
echo set stm2=createobject("ADODB.Stream") >>%ConverterPath%
echo stm2.Charset ="utf-8" >>%ConverterPath%
echo stm2.Open >>%ConverterPath%
echo stm2.LoadFromFile inputpath >>%ConverterPath%
echo readfile = stm2.ReadText >>%ConverterPath%
echo stm2.Close >>%ConverterPath%
echo Set Stm1 =CreateObject("ADODB.Stream") >>%ConverterPath%
echo Stm1.Type = 2 >>%ConverterPath%
echo Stm1.Open >>%ConverterPath%
echo Stm1.Charset ="GBK" >>%ConverterPath%
echo Stm1.Position = Stm1.Size >>%ConverterPath%
echo Stm1.WriteText "set converted=y" ^& vbcrlf >>%ConverterPath%
echo Stm1.WriteText readfile >>%ConverterPath%
echo Stm1.SaveToFile outputpath,2 >>%ConverterPath%
echo Stm1.Close >>%ConverterPath%
%ConverterPath% && %ConverterOutput%
goto :eof

:converted

chcp 936
:: 更改cmd窗口代码页至 936(GBK)

cls
%1 %2
ver|find " 5.">nul &&goto :st
echo 正在进行 UAC 提权...
mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :st","","runas",1)(window.close)&goto :eof
:st

cls

@REM HostsGet Version0.4
cd /d %~dp0

set LogFilePath=%temp%\HostsGeter_log.txt
set DLScriptPath=%temp%\downloadhosts.vbs
set DLPath=%windir%\system32\drivers\etc\hosts_downloaded
set BackupDir=%windir%\system32\drivers\etc
set HostsPath=%windir%\system32\drivers\etc\hosts

set LogToFile=^>^>%LogFilePath% 2^>^&1
set EchoAndLog=call :echoandlog
echo. %LogToFile%
echo ==========[%date% %time%]========== %LogToFile%
echo 日志文件:
echo %LogFilePath%
echo.

echo iLocal=LCase("%DLPath%") > %DLScriptPath% ||(
 call :error downloadhosts.vbs 文件创建/写入失败.
)
echo iRemote=LCase("https://raw.githubusercontent.com/racaljk/hosts/master/hosts") >> %DLScriptPath%
echo Set xPost=createObject("Microsoft.XMLHTTP") 'Set Post = CreateObject("Msxml2.XMLHTTP") >> %DLScriptPath%
echo xPost.Open "GET",iRemote,0 >> %DLScriptPath%
echo xPost.Send() >> %DLScriptPath%
echo set sGet=createObject("ADODB.Stream") >> %DLScriptPath%
echo sGet.Mode=3 >> %DLScriptPath%
echo sGet.Type=1 >> %DLScriptPath%
echo sGet.Open() >> %DLScriptPath%
echo sGet.Write xPost.ResponseBody >> %DLScriptPath%
echo sGet.SaveToFile iLocal,2 >> %DLScriptPath%

%EchoAndLog% 开始从 GitHub 中下载 hosts 文件...
if exist %DLPath% del %DLPath% /s /q %LogToFile%
%DLScriptPath% || call :error hosts 文件下载失败.
del %DLScriptPath% /s /q %LogToFile%
if not exist %DLPath% call :error hosts 文件下载失败.
%EchoAndLog% 下载完成.
echo.

if exist %HostsPath% (
  call :backuphosts
) else (
  %EchoAndLog% (原 hosts 文件不存在,跳过备份)
)
%EchoAndLog% 正在替换 hosts 文件...
move %DLPath% %HostsPath% %LogToFile% || call :error hosts 文件替换失败.
%EchoAndLog% hosts 文件已替换.
echo.

%EchoAndLog% 正在刷新系统 DNS 缓存...
ipconfig /flushdns %LogToFile% || call :error DNS 缓存刷新失败.
%EchoAndLog% DNS 缓存已刷新.
echo.
%EchoAndLog% 【操作全部完成!】
echo.

echo 按任意键访问 google.com.hk 进行测试,如取消,请直接关闭本窗口
pause >nul
start https://www.google.com.hk
echo 已经帮你访问 google.com.hk 如可以访问则替换成功.
echo.
goto :end

:backuphosts
%EchoAndLog% 正在备份原 hosts 文件...
set "bakfilename=hosts_%date%_%time:~0,8%.bak"
set bakfilename=%bakfilename:/=-%
set bakfilename=%bakfilename:\=-%
set bakfilename=%bakfilename::=-%
set bakfilename=%bakfilename: =_%
copy %HostsPath% %BackupDir%\%bakfilename% %LogToFile% || call :error hosts 文件备份失败.
%EchoAndLog% 原 hosts 文件已备份到 %BackupDir%\%bakfilename%.
echo.
goto :eof

:error
echo ======================
%EchoAndLog% 错误:%*
start %LogFilePath%
echo 已打开日志文件
goto :end

:echoandlog
echo %*
echo %* %LogToFile%
goto :eof

:end
echo 按任意键关闭
pause >nul
exit

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索hosts
一键部署
hoststool、hoststool tui.exe、hoststool 下载、hoststool官网、hoststool更新失败,以便于您获取更多的相关知识。

时间: 2024-09-14 07:27:45

script_tool_for_windows.bat Windows 环境下的 hosts 一键部署脚本_DOS/BAT的相关文章

script_tool_for_linux.bash: Linux 环境下的 hosts 一键部署脚本_linux shell

Linux 环境下的 hosts 一键部署脚本,由 @lstoars 贡献; @fluviusmagnus 提供增强版本. 官方网站:https://github.com/racaljk/hosts/tree/master/hosts_tools #!/bin/sh # # script_tool_for_linux # # Use command: `sudo sh script_tool_for_linux.sh` or # `su -c 'sh script_tool_for_linux.

基于Windows环境下的PHP开发环境搭建

相信许多和人和我一样,都非常的喜欢学习PHP编程,同样有很多人因为无法搭建一个基于Windows环境下的PHP开发环境搭建而不得不放弃自己学习PHP的愿望.所以我想就这个问题将自己的心得体会写出来,一是可以帮助那些苦于无法搭建开发环境的人,二是可以让自己也有个总结的机会. 我写这篇文章的目的很简单,就是帮助那些刚刚开始学习PHP的朋友,所以我将尽量以最简单.明确的语言来进行描述,如果您已经就此问题非常熟练,大可以不看本文而去做更有意义的事情. 限于我本人的水平有限,本文难免有错误和不足之处,恳请

Windows环境下Tomcat启动窗口标题中文乱码

问题描述 Windows环境下Tomcat启动窗口标题中文乱码 在windows环境下,如果生产环境一台机子上多个tomcat部署多个系统,tomcat全部启动后不知道是哪个具体系统的控制台,通过修改了catalina.bat里的title的默认Tomact标题为系统名称,如果为中文就乱码,点击startup.bat启动tomcat的窗口标题栏修改为中文乱码,求高手解决

ZF2入门:Windows环境下从零开始Zend Framework 2.0 (ZF2)环境搭建

原文:http://avnpc.com/pages/zend-framework-2-installation-for-windows 日志未经声明,均为AlloVince原创.版权采用『 知识共享署名-非商业性使用 2.5 许可协议』进行许可. Zend Framework 2.0 (ZF2)正式发布之后不少朋友都进行了尝试,可能由于ZF2涉及到的新特性比较多,有朋友希望能有一篇从零开始Zend Framework 2.0 (ZF2)的教程,于是就有了本篇日志. 以下将记录在Windows环境

windows环境下安装tomcat <修订版本>

在windows环境下安装tomcat修订版安装jdk1.3注意: 如果你安装过1.3之前的java版本,请删除该版本的所有文件,并用rregedit删除 HKEY_LOCAL_MACHINEsoftwarejavasoft下面所有内容.然后再安装jdk1.3请这里下载jdk1.3:http://www.chinaasp.com/download/readFolder.asp?folder=JspDev&name=JSP%BF%AA%B7%A2%B0%FC然后注意如果你的系统是中文系统,系统注册

图解Windows环境下Android Studio安装和使用教程

鉴于谷歌最新推出的Android Studio备受开发者的推崇,所以也跟着体验一下. 一.介绍Android Studio Android Studio 是一个Android开发环境,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调试. 最近,Google 已宣布,为了简化 Android 的开发力度,以重点建设 Android Studio 工具,到今年年底将停止支持Eclipse等其他集成开发环境

vala windows-VALA语言能在WINDOWS环境下编写吗?

问题描述 VALA语言能在WINDOWS环境下编写吗? VALA是Linux的语言,最近在查是否VALA语言能用在Window下,可以不借助其他Linux的工具把Windows转换为Linux,然后编写VALA吗?就是直接能在Windows下应用吗>?

linux/windows环境下mysql数据库启动、停止、重启命令

linux环境下 一.启动 1.使用 service 启动:service mysqld start 2.使用 mysqld 脚本启动:/etc/inint.d/mysqld start 3.使用 safe_mysqld 启动:safe_mysqld& 二.停止 1.使用 service 启动:service mysqld stop 2.使用 mysqld 脚本启动:/etc/inint.d/mysqld stop 3.mysqladmin shutdown 三.重启 1.使用 service 

Windows环境下mysql初始化

Linux环境中,安装好mysql后,还不能直接启动服务,必须先对数据库进行初始化.初始化的工作主要包括: 初始化日志.表空间等数据库必须的文件: 创建并初始化系统数据库(mysql). 初始化完成后,启动mysqld守护进程,方可访问数据库. 在Windows的环境下,安装包内已经自带了一个初始化好的环境,安装后展开在mysql根目录的data子目录.所以并不需要手工进行初始化.但是某些情况下,也可能需要从零开始初始化数据库,比如: 数据文件被破坏,需要重建: 希望保留现有环境不动,建立一个新