运用windows批处理实现一键科学上网Amb免费翻墙网
Amb免费翻墙网
@echo offAmb免费翻墙网
if defined converted goto :convertedAmb免费翻墙网
Amb免费翻墙网
set ConverterPath=%temp%\HostsGeter_CodeConverter.vbsAmb免费翻墙网
set ConverterOutput=%temp%\HostsGeter_GBK.batAmb免费翻墙网
Amb免费翻墙网
echo inputpath="%~0" >%ConverterPath%Amb免费翻墙网
echo outputpath="%ConverterOutput%" >>%ConverterPath%Amb免费翻墙网
echo set stm2=createobject("ADODB.Stream") >>%ConverterPath%Amb免费翻墙网
echo stm2.Charset ="utf-8" >>%ConverterPath%Amb免费翻墙网
echo stm2.Open >>%ConverterPath%Amb免费翻墙网
echo stm2.LoadFromFile inputpath >>%ConverterPath%Amb免费翻墙网
echo readfile = stm2.ReadText >>%ConverterPath%Amb免费翻墙网
echo stm2.Close >>%ConverterPath%Amb免费翻墙网
echo Set Stm1 =CreateObject("ADODB.Stream") >>%ConverterPath%Amb免费翻墙网
echo Stm1.Type = 2 >>%ConverterPath%Amb免费翻墙网
echo Stm1.Open >>%ConverterPath%Amb免费翻墙网
echo Stm1.Charset ="GBK" >>%ConverterPath%Amb免费翻墙网
echo Stm1.Position = Stm1.Size >>%ConverterPath%Amb免费翻墙网
echo Stm1.WriteText "set converted=y" ^& vbcrlf >>%ConverterPath%Amb免费翻墙网
echo Stm1.WriteText readfile >>%ConverterPath%Amb免费翻墙网
echo Stm1.SaveToFile outputpath,2 >>%ConverterPath%Amb免费翻墙网
echo Stm1.Close >>%ConverterPath%Amb免费翻墙网
%ConverterPath% && %ConverterOutput%Amb免费翻墙网
goto :eofAmb免费翻墙网
Amb免费翻墙网
:convertedAmb免费翻墙网
Amb免费翻墙网
chcp 936Amb免费翻墙网
:: 更改cmd窗口代码页至 936(GBK)Amb免费翻墙网
Amb免费翻墙网
clsAmb免费翻墙网
%1 %2Amb免费翻墙网
ver|find " 5.">nul &&goto :stAmb免费翻墙网
echo 正在进行 UAC 提权...Amb免费翻墙网
mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :st","","runas",1)(window.close)&goto :eofAmb免费翻墙网
:stAmb免费翻墙网
Amb免费翻墙网
clsAmb免费翻墙网
Amb免费翻墙网
@REM HostsGet Version0.4Amb免费翻墙网
cd /d %~dp0Amb免费翻墙网
Amb免费翻墙网
set LogFilePath=%temp%\HostsGeter_log.txtAmb免费翻墙网
set DLScriptPath=%temp%\downloadhosts.vbsAmb免费翻墙网
set DLPath=%windir%\system32\drivers\etc\hosts_downloadedAmb免费翻墙网
set BackupDir=%windir%\system32\drivers\etcAmb免费翻墙网
set HostsPath=%windir%\system32\drivers\etc\hostsAmb免费翻墙网
Amb免费翻墙网
set LogToFile=^>^>%LogFilePath% 2^>^&1Amb免费翻墙网
set EchoAndLog=call :echoandlogAmb免费翻墙网
echo. %LogToFile%Amb免费翻墙网
echo ==========[%date% %time%]========== %LogToFile%Amb免费翻墙网
echo 日志文件:Amb免费翻墙网
echo %LogFilePath%Amb免费翻墙网
echo.Amb免费翻墙网
Amb免费翻墙网
echo iLocal=LCase("%DLPath%") > %DLScriptPath% ||(Amb免费翻墙网
call :error downloadhosts.vbs 文件创建/写入失败.Amb免费翻墙网
)Amb免费翻墙网
echo iRemote=LCase("https://coding.net/u/scaffrey/p/hosts/git/raw/master/hosts") >> %DLScriptPath%Amb免费翻墙网
echo Set xPost=createObject("Microsoft.XMLHTTP") 'Set Post = CreateObject("Msxml2.XMLHTTP") >> %DLScriptPath%Amb免费翻墙网
echo xPost.Open "GET",iRemote,0 >> %DLScriptPath%Amb免费翻墙网
echo xPost.Send() >> %DLScriptPath%Amb免费翻墙网
echo set sGet=createObject("ADODB.Stream") >> %DLScriptPath%Amb免费翻墙网
echo sGet.Mode=3 >> %DLScriptPath%Amb免费翻墙网
echo sGet.Type=1 >> %DLScriptPath%Amb免费翻墙网
echo sGet.Open() >> %DLScriptPath%Amb免费翻墙网
echo sGet.Write xPost.ResponseBody >> %DLScriptPath%Amb免费翻墙网
echo sGet.SaveToFile iLocal,2 >> %DLScriptPath%Amb免费翻墙网
Amb免费翻墙网
%EchoAndLog% 开始从 GitHub 中下载 hosts 文件...Amb免费翻墙网
if exist %DLPath% del %DLPath% /s /q %LogToFile%Amb免费翻墙网
%DLScriptPath% || call :error hosts 文件下载失败.Amb免费翻墙网
del %DLScriptPath% /s /q %LogToFile%Amb免费翻墙网
if not exist %DLPath% call :error hosts 文件下载失败.Amb免费翻墙网
%EchoAndLog% 下载完成.Amb免费翻墙网
echo.Amb免费翻墙网
Amb免费翻墙网
if exist %HostsPath% (Amb免费翻墙网
call :backuphostsAmb免费翻墙网
) else (Amb免费翻墙网
%EchoAndLog% (原 hosts 文件不存在,跳过备份)Amb免费翻墙网
)Amb免费翻墙网
%EchoAndLog% 正在替换 hosts 文件...Amb免费翻墙网
move %DLPath% %HostsPath% %LogToFile% || call :error hosts 文件替换失败.Amb免费翻墙网
%EchoAndLog% hosts 文件已替换.Amb免费翻墙网
echo.Amb免费翻墙网
Amb免费翻墙网
%EchoAndLog% 正在刷新系统 DNS 缓存...Amb免费翻墙网
ipconfig /flushdns %LogToFile% || call :error DNS 缓存刷新失败.Amb免费翻墙网
%EchoAndLog% DNS 缓存已刷新.Amb免费翻墙网
echo.Amb免费翻墙网
%EchoAndLog% 【操作全部完成!】Amb免费翻墙网
echo.Amb免费翻墙网
Amb免费翻墙网
echo 按任意键访问 google.com.hk 进行测试,如取消,请直接关闭本窗口Amb免费翻墙网
pause >nulAmb免费翻墙网
start https://www.google.com.hkAmb免费翻墙网
echo 已经帮你访问 google.com.hk 如可以访问则替换成功.Amb免费翻墙网
echo.Amb免费翻墙网
goto :endAmb免费翻墙网
Amb免费翻墙网
:backuphostsAmb免费翻墙网
%EchoAndLog% 正在备份原 hosts 文件...Amb免费翻墙网
set "bakfilename=hosts_%date%_%time:~0,8%.bak"Amb免费翻墙网
set bakfilename=%bakfilename:/=-%Amb免费翻墙网
set bakfilename=%bakfilename:\=-%Amb免费翻墙网
set bakfilename=%bakfilename::=-%Amb免费翻墙网
set bakfilename=%bakfilename: =_%Amb免费翻墙网
copy %HostsPath% %BackupDir%\%bakfilename% %LogToFile% || call :error hosts 文件备份失败.Amb免费翻墙网
%EchoAndLog% 原 hosts 文件已备份到 %BackupDir%\%bakfilename%.Amb免费翻墙网
echo.Amb免费翻墙网
goto :eofAmb免费翻墙网
Amb免费翻墙网
:errorAmb免费翻墙网
echo ======================Amb免费翻墙网
%EchoAndLog% 错误:%*Amb免费翻墙网
start %LogFilePath%Amb免费翻墙网
echo 已打开日志文件Amb免费翻墙网
goto :endAmb免费翻墙网
Amb免费翻墙网
:echoandlogAmb免费翻墙网
echo %*Amb免费翻墙网
echo %* %LogToFile%Amb免费翻墙网
goto :eofAmb免费翻墙网
Amb免费翻墙网
:endAmb免费翻墙网
echo 按任意键关闭Amb免费翻墙网
pause >nulAmb免费翻墙网
exitAmb免费翻墙网
Amb免费翻墙网
|