script_tool_for_windows.bat Windows 환경 에서 hosts 원 키 배치 스 크 립 트

5820 단어 hosts원 키 배치
저 희 는 일련의 도 구 를 제공 하여 수 동 으로 복사/붙 여 넣 는 방식 으로 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 원 키 배치 스 크 립 트 는@redapple 0204 와@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

좋은 웹페이지 즐겨찾기