2010-09-08 64 views
19

我想使用这个批处理脚本通过使用批次自动将新条目添加到我的主机文件中。Windows批处理:如何添加主机条目?

不幸的是,脚本只是向主机文件添加一行,当我以管理员身份运行脚本时,那又怎么了?

@echo off 

set hostspath=%windir%\System32\drivers\etc\hosts 

echo 62.116.159.4 ns1.intranet.de >> %hostspath% 
echo 217.160.113.37 ns2.intranet.de >> %hostpath% 
echo 89.146.248.4 ns3.intranet.de >> %hostpath% 
echo 74.208.254.4 ns4.intranet.de >> %hostpath% 

exit 
+1

哪一个不将其添加到文件中。第一个还是最后一个? – 2010-09-08 10:29:55

+0

真棒问题,很高兴找到准备好的信息并等待。 – 2013-07-12 20:38:58

回答

43

我会这样做,所以如果脚本运行多次,您将不会结束重复的条目。

@echo off 

SET NEWLINE=^& echo. 

FIND /C /I "ns1.intranet.de" %WINDIR%\system32\drivers\etc\hosts 
IF %ERRORLEVEL% NEQ 0 ECHO %NEWLINE%^62.116.159.4 ns1.intranet.de>>%WINDIR%\System32\drivers\etc\hosts 

FIND /C /I "ns2.intranet.de" %WINDIR%\system32\drivers\etc\hosts 
IF %ERRORLEVEL% NEQ 0 ECHO %NEWLINE%^217.160.113.37 ns2.intranet.de>>%WINDIR%\System32\drivers\etc\hosts 

FIND /C /I "ns3.intranet.de" %WINDIR%\system32\drivers\etc\hosts 
IF %ERRORLEVEL% NEQ 0 ECHO %NEWLINE%^89.146.248.4 ns3.intranet.de>>%WINDIR%\System32\drivers\etc\hosts 

FIND /C /I "ns4.intranet.de" %WINDIR%\system32\drivers\etc\hosts 
IF %ERRORLEVEL% NEQ 0 ECHO %NEWLINE%^74.208.254.4 ns4.intranet.de>>%WINDIR%\System32\drivers\etc\hosts 
+0

明确的答案在这里。干杯! – 2013-07-12 20:39:19

+0

感谢您的支持!很好的工作 – Miva 2013-07-29 20:00:55

+0

'IF ERRORLEVEL 1 ...'可以用作'IF ERRORLEVEL> = 1 THEN'。取自http://ss64.com/nt/errorlevel.html。无需使用'NEQ'。 – jarsever 2016-06-14 21:24:40

24

明显的错字。 hostspath VS hostpath

@回响

设置hostspath =%WINDIR%\ System32 \ drivers下\等\主机

回波62.116.159.4 ns1.intranet.de >>%hostspath%
回声217.160 .113.37 ns2.intranet.de >>%hostpath%
呼应89.146.248.4 ns3.intranet.de >>%hostpath%
回声74.208.254.4 ns4.intranet.de >>%hostpath%

退出

+0

工程!谢谢 – mate64 2010-09-08 11:04:45

+0

不适用于win8 – user198989 2014-10-10 22:20:39

5

在它下面的内容创建一个新的addHostEntry.bat文件:

@echo off 
TITLE Modifying your HOSTS file 
COLOR F0 
ECHO. 

:LOOP 
SET Choice= 
SET /P Choice="Do you want to modify HOSTS file ? (Y/N)" 

IF NOT '%Choice%'=='' SET Choice=%Choice:~0,1% 

ECHO. 
IF /I '%Choice%'=='Y' GOTO ACCEPTED 
IF /I '%Choice%'=='N' GOTO REJECTED 
ECHO Please type Y (for Yes) or N (for No) to proceed! 
ECHO. 
GOTO Loop 


:REJECTED 
ECHO Your HOSTS file was left unchanged>>%systemroot%\Temp\hostFileUpdate.log 
ECHO Finished. 
GOTO END 


:ACCEPTED 
SET NEWLINE=^& echo. 
ECHO Carrying out requested modifications to your HOSTS file 
FIND /C /I "mydomain.com" %WINDIR%\system32\drivers\etc\hosts 
IF %ERRORLEVEL% NEQ 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts 
IF %ERRORLEVEL% NEQ 0 ECHO 127.0.0.1 mydomain.com>>%WINDIR%\system32\drivers\etc\hosts 
ECHO Finished 
GOTO END 


:END 
ECHO. 
ping -n 11 127.0.0.1 > nul 
EXIT 

希望这有助于!

+1

这个工作非常完美,非常感谢你! – 2014-11-14 14:52:57

15

这是我对@rashy的修改。该脚本执行以下操作:

  • 它验证您有权访问,如果没有,要求它
  • 允许你在多台主机列表中通过列表
  • 进入
  • 循环它发现线包含域名并将其删除,然后重新添加它(因为自上次脚本运行以来IP已更改)。
  • 如果域不在那里,它只是添加它。

这是脚本:

@echo off 
TITLE Modifying your HOSTS file 
COLOR F0 
ECHO. 


:: BatchGotAdmin 
:------------------------------------- 
REM --> Check for permissions 
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system" 

REM --> If error flag set, we do not have admin. 
if '%errorlevel%' NEQ '0' (
    echo Requesting administrative privileges... 
    goto UACPrompt 
) else (goto gotAdmin) 

:UACPrompt 
    echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs" 
    set params = %*:"=" 
    echo UAC.ShellExecute "cmd.exe", "/c %~s0 %params%", "", "runas", 1 >> "%temp%\getadmin.vbs" 

    "%temp%\getadmin.vbs" 
    del "%temp%\getadmin.vbs" 
    exit /B 

:gotAdmin 
    pushd "%CD%" 
    CD /D "%~dp0" 
:-------------------------------------- 

:LOOP 
SET Choice= 
SET /P Choice="Do you want to modify HOSTS file ? (Y/N)" 

IF NOT '%Choice%'=='' SET Choice=%Choice:~0,1% 

ECHO. 
IF /I '%Choice%'=='Y' GOTO ACCEPTED 
IF /I '%Choice%'=='N' GOTO REJECTED 
ECHO Please type Y (for Yes) or N (for No) to proceed! 
ECHO. 
GOTO Loop 


:REJECTED 
ECHO Your HOSTS file was left unchanged>>%systemroot%\Temp\hostFileUpdate.log 
ECHO Finished. 
GOTO END 


:ACCEPTED 
setlocal enabledelayedexpansion 
::Create your list of host domains 
set LIST=(diqc.oca wiki.oca) 
::Set the ip of the domains you set in the list above 
set diqc.oca=192.168.111.6 
set wiki.oca=192.168.111.4 
:: deletes the parentheses from LIST 
set _list=%LIST:~1,-1% 
::ECHO %WINDIR%\System32\drivers\etc\hosts > tmp.txt 
for %%G in (%_list%) do (
    set _name=%%G 
    set _value=!%%G! 
    SET NEWLINE=^& echo. 
    ECHO Carrying out requested modifications to your HOSTS file 
    ::strip out this specific line and store in tmp file 
    type %WINDIR%\System32\drivers\etc\hosts | findstr /v !_name! > tmp.txt 
    ::re-add the line to it 
    ECHO %NEWLINE%^!_value! !_name!>>tmp.txt 
    ::overwrite host file 
    copy /b/v/y tmp.txt %WINDIR%\System32\drivers\etc\hosts 
    del tmp.txt 
) 
ipconfig /flushdns 
ECHO. 
ECHO. 
ECHO Finished, you may close this window now. 
ECHO You should now open Chrome and go to "chrome://net-internals/#dns" (without quotes) 
ECHO  then click the "clear host cache" button 
GOTO END 

:END 
ECHO. 
ping -n 11 192.0.2.2 > nul 
EXIT 
+0

非常好,非常完整的脚本:) – Milkmannetje 2016-04-21 12:24:49

+0

工程就像一个魅力!非常感谢你! (在Win10中测试) – 2016-10-12 18:08:01

+0

终身保护。谢谢! :) – 2017-11-27 14:46:56

-3

嗯,我写一个脚本,它工作得很好。

> @echo off TITLE Modifying your HOSTS file COLOR F0 ECHO. 
> 
> :LOOP SET Choice= SET /P Choice="Do you want to modify HOSTS file ? 
> (Y/N)" 
> 
> IF NOT '%Choice%'=='' SET Choice=%Choice:~0,1% 
> 
> ECHO. IF /I '%Choice%'=='Y' GOTO ACCEPTED IF /I '%Choice%'=='N' GOTO 
> REJECTED ECHO Please type Y (for Yes) or N (for No) to proceed! ECHO. 
> GOTO Loop 
> 
> 
> :REJECTED ECHO Your HOSTS file was left 
> unchanged>>%systemroot%\Temp\hostFileUpdate.log ECHO Finished. GOTO 
> END 
> 
> 
> :ACCEPTED SET NEWLINE=^& echo. ECHO Carrying out requested 
> modifications to your HOSTS file FIND /C /I "www.youtube.com" 
> %WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% NEQ 0 ECHO 
> %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% NEQ 0 
> ECHO 127.0.0.1 www.youtube.com>>%WINDIR%\system32\drivers\etc\hosts 
> FIND /C /I "youtube.com" %WINDIR%\system32\drivers\etc\hosts IF 
> %ERRORLEVEL% NEQ 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts 
> IF %ERRORLEVEL% NEQ 0 ECHO 127.0.0.1 
> youtube.com>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "www.zacebookpk.com" %WINDIR%\system32\drivers\etc\hosts IF 
> %ERRORLEVEL% NEQ 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts 
> IF %ERRORLEVEL% NEQ 0 ECHO 127.0.0.1 
> www.zacebookpk.com>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "zacebookpk.com" %WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% 
> NEQ 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts IF 
> %ERRORLEVEL% NEQ 0 ECHO 127.0.0.1 
> zacebookpk.com>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "www.proxysite.com" %WINDIR%\system32\drivers\etc\hosts IF 
> %ERRORLEVEL% NEQ 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts 
> IF %ERRORLEVEL% NEQ 0 ECHO 127.0.0.1 
> www.proxysite.com>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "www.proxfree.com" %WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% 
> NEQ 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts IF 
> %ERRORLEVEL% NEQ 0 ECHO 127.0.0.1 
> www.proxfree.com>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "www.hidemyass.com" %WINDIR%\system32\drivers\etc\hosts IF 
> %ERRORLEVEL% NEQ 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts 
> IF %ERRORLEVEL% NEQ 0 ECHO 127.0.0.1 
> www.hidemyass.com>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "www.freeyoutubeproxy.org" %WINDIR%\system32\drivers\etc\hosts IF 
> %ERRORLEVEL% NEQ 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts 
> IF %ERRORLEVEL% NEQ 0 ECHO 127.0.0.1 
> www.freeyoutubeproxy.org>>%WINDIR%\system32\drivers\etc\hosts FIND /C 
> /I "www.facebook.com" %WINDIR%\system32\drivers\etc\hosts IF 
> %ERRORLEVEL% NEQ 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts 
> IF %ERRORLEVEL% NEQ 0 ECHO 127.0.0.1 
> www.facebook.com>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "facebook.com" %WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% NEQ 
> 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% 
> NEQ 0 ECHO 127.0.0.1 
> facebook.com>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "www.4everproxy.com " %WINDIR%\system32\drivers\etc\hosts IF 
> %ERRORLEVEL% NEQ 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts 
> IF %ERRORLEVEL% NEQ 0 ECHO 127.0.0.1 www.4everproxy.com 
> >>%WINDIR%\system32\drivers\etc\hosts FIND /C /I "4everproxy.com " %WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% NEQ 0 ECHO 
> %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% NEQ 0 
> ECHO 127.0.0.1 4everproxy.com >>%WINDIR%\system32\drivers\etc\hosts 
> FIND /C /I "proxysite.com" %WINDIR%\system32\drivers\etc\hosts IF 
> %ERRORLEVEL% NEQ 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts 
> IF %ERRORLEVEL% NEQ 0 ECHO 127.0.0.1 
> proxysite.com>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "proxfree.com" %WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% NEQ 
> 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% 
> NEQ 0 ECHO 127.0.0.1 
> proxfree.com>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "hidemyass.com" %WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% 
> NEQ 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts IF 
> %ERRORLEVEL% NEQ 0 ECHO 127.0.0.1 
> hidemyass.com>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "freeyoutubeproxy.org" %WINDIR%\system32\drivers\etc\hosts IF 
> %ERRORLEVEL% NEQ 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts 
> IF %ERRORLEVEL% NEQ 0 ECHO 127.0.0.1 
> freeyoutubeproxy.org>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "unblockvideos.com" %WINDIR%\system32\drivers\etc\hosts IF 
> %ERRORLEVEL% NEQ 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts 
> IF %ERRORLEVEL% NEQ 0 ECHO 127.0.0.1 
> unblockvideos.com>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "proxyone.net" %WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% NEQ 
> 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% 
> NEQ 0 ECHO 127.0.0.1 
> proxyone.net>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "kuvia.eu" %WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% NEQ 0 
> ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% 
> NEQ 0 ECHO 127.0.0.1 kuvia.eu>>%WINDIR%\system32\drivers\etc\hosts 
> FIND /C /I "kuvia.eu/facebook-proxy" 
> %WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% NEQ 0 ECHO 
> %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% NEQ 0 
> ECHO 127.0.0.1 
> kuvia.eu/facebook-proxy>>%WINDIR%\system32\drivers\etc\hosts FIND /C 
> /I "hidemytraxproxy.ca" %WINDIR%\system32\drivers\etc\hosts IF 
> %ERRORLEVEL% NEQ 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts 
> IF %ERRORLEVEL% NEQ 0 ECHO 127.0.0.1 
> hidemytraxproxy.ca>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "github.com" %WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% NEQ 0 
> ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% 
> NEQ 0 ECHO 127.0.0.1 
> github.com>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "funproxy.net" %WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% NEQ 
> 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% 
> NEQ 0 ECHO 127.0.0.1 
> funproxy.net>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "en.wikipedia.org" %WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% 
> NEQ 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts IF 
> %ERRORLEVEL% NEQ 0 ECHO 127.0.0.1 
> en.wikipedia.org>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "wikipedia.org" %WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% 
> NEQ 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts IF 
> %ERRORLEVEL% NEQ 0 ECHO 127.0.0.1 
> wikipedia.org>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "dronten.proxylistpro.com" %WINDIR%\system32\drivers\etc\hosts IF 
> %ERRORLEVEL% NEQ 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts 
> IF %ERRORLEVEL% NEQ 0 ECHO 127.0.0.1 
> dronten.proxylistpro.com>>%WINDIR%\system32\drivers\etc\hosts FIND /C 
> /I "proxylistpro.com" %WINDIR%\system32\drivers\etc\hosts IF 
> %ERRORLEVEL% NEQ 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts 
> IF %ERRORLEVEL% NEQ 0 ECHO 127.0.0.1 
> proxylistpro.com>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "zfreez.com" %WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% NEQ 0 
> ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% 
> NEQ 0 ECHO 127.0.0.1 
> zfreez.com>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "zendproxy.com" %WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% 
> NEQ 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts IF 
> %ERRORLEVEL% NEQ 0 ECHO 127.0.0.1 
> zendproxy.com>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "zalmos.com" %WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% NEQ 0 
> ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% 
> NEQ 0 ECHO 127.0.0.1 
> zalmos.com>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "zacebookpk.com" %WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% 
> NEQ 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts IF 
> %ERRORLEVEL% NEQ 0 ECHO 127.0.0.1 
> zacebookpk.com>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "youtubeunblockproxy.com" %WINDIR%\system32\drivers\etc\hosts IF 
> %ERRORLEVEL% NEQ 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts 
> IF %ERRORLEVEL% NEQ 0 ECHO 127.0.0.1 
> youtubeunblockproxy.com>>%WINDIR%\system32\drivers\etc\hosts FIND /C 
> /I "youtubefreeproxy.net" %WINDIR%\system32\drivers\etc\hosts IF 
> %ERRORLEVEL% NEQ 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts 
> IF %ERRORLEVEL% NEQ 0 ECHO 127.0.0.1 
> youtubefreeproxy.net>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "youliaoren.com" %WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% 
> NEQ 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts IF 
> %ERRORLEVEL% NEQ 0 ECHO 127.0.0.1 
> youliaoren.com>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "xitenow.com" %WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% NEQ 
> 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% 
> NEQ 0 ECHO 127.0.0.1 
> xitenow.com>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "www.youtubeproxy.pk" %WINDIR%\system32\drivers\etc\hosts IF 
> %ERRORLEVEL% NEQ 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts 
> IF %ERRORLEVEL% NEQ 0 ECHO 127.0.0.1 
> www.youtubeproxy.pk>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "youtubeproxy.pk" %WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% 
> NEQ 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts IF 
> %ERRORLEVEL% NEQ 0 ECHO 127.0.0.1 
> youtubeproxy.pk>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "www.youproxytube.com" %WINDIR%\system32\drivers\etc\hosts IF 
> %ERRORLEVEL% NEQ 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts 
> IF %ERRORLEVEL% NEQ 0 ECHO 127.0.0.1 
> www.youproxytube.com>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "www.webmasterview.com" %WINDIR%\system32\drivers\etc\hosts IF 
> %ERRORLEVEL% NEQ 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts 
> IF %ERRORLEVEL% NEQ 0 ECHO 127.0.0.1 
> www.webmasterview.com>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "webmasterview.com" %WINDIR%\system32\drivers\etc\hosts IF 
> %ERRORLEVEL% NEQ 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts 
> IF %ERRORLEVEL% NEQ 0 ECHO 127.0.0.1 
> webmasterview.com>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "youproxytube.com" %WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% 
> NEQ 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts IF 
> %ERRORLEVEL% NEQ 0 ECHO 127.0.0.1 
> youproxytube.com>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "www.vobas.com" %WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% 
> NEQ 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts IF 
> %ERRORLEVEL% NEQ 0 ECHO 127.0.0.1 
> www.vobas.com>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "vobas.com" %WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% NEQ 0 
> ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% 
> NEQ 0 ECHO 127.0.0.1 vobas.com>>%WINDIR%\system32\drivers\etc\hosts 
> FIND /C /I "www.unblockmyweb.com" %WINDIR%\system32\drivers\etc\hosts 
> IF %ERRORLEVEL% NEQ 0 ECHO 
> %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% NEQ 0 
> ECHO 127.0.0.1 
> www.unblockmyweb.com>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "unblockmyweb.com" %WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% 
> NEQ 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts IF 
> %ERRORLEVEL% NEQ 0 ECHO 127.0.0.1 
> unblockmyweb.com>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "www.unblocker.yt" %WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% 
> NEQ 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts IF 
> %ERRORLEVEL% NEQ 0 ECHO 127.0.0.1 
> www.unblocker.yt>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "unblocker.yt" %WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% NEQ 
> 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% 
> NEQ 0 ECHO 127.0.0.1 
> unblocker.yt>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "www.unblock.pk" %WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% 
> NEQ 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts IF 
> %ERRORLEVEL% NEQ 0 ECHO 127.0.0.1 
> www.unblock.pk>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "unblock.pk" %WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% NEQ 0 
> ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% 
> NEQ 0 ECHO 127.0.0.1 
> unblock.pk>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "www.techgyd.com" %WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% 
> NEQ 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts IF 
> %ERRORLEVEL% NEQ 0 ECHO 127.0.0.1 
> www.techgyd.com>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "techgyd.com" %WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% NEQ 
> 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% 
> NEQ 0 ECHO 127.0.0.1 
> techgyd.com>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "www.snapdeal.com" %WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% 
> NEQ 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts IF 
> %ERRORLEVEL% NEQ 0 ECHO 127.0.0.1 
> www.snapdeal.com>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "snapdeal.com" %WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% NEQ 
> 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% 
> NEQ 0 ECHO 127.0.0.1 
> snapdeal.com>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "www.site2unblock.com" %WINDIR%\system32\drivers\etc\hosts IF 
> %ERRORLEVEL% NEQ 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts 
> IF %ERRORLEVEL% NEQ 0 ECHO 127.0.0.1 
> www.site2unblock.com>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "site2unblock.com" %WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% 
> NEQ 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts IF 
> %ERRORLEVEL% NEQ 0 ECHO 127.0.0.1 
> site2unblock.com>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "www.shopclues.com" %WINDIR%\system32\drivers\etc\hosts IF 
> %ERRORLEVEL% NEQ 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts 
> IF %ERRORLEVEL% NEQ 0 ECHO 127.0.0.1 
> www.shopclues.com>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "shopclues.com" %WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% 
> NEQ 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts IF 
> %ERRORLEVEL% NEQ 0 ECHO 127.0.0.1 
> shopclues.com>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "www.proxypk.com" %WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% 
> NEQ 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts IF 
> %ERRORLEVEL% NEQ 0 ECHO 127.0.0.1 
> www.proxypk.com>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "proxypk.com" %WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% NEQ 
> 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% 
> NEQ 0 ECHO 127.0.0.1 
> proxypk.com>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "www.proxay.co.uk" %WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% 
> NEQ 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts IF 
> %ERRORLEVEL% NEQ 0 ECHO 127.0.0.1 
> www.proxay.co.uk>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "proxay.co.uk" %WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% NEQ 
> 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% 
> NEQ 0 ECHO 127.0.0.1 
> proxay.co.uk>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "www.myntra.com" %WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% 
> NEQ 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts IF 
> %ERRORLEVEL% NEQ 0 ECHO 127.0.0.1 
> www.myntra.com>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "myntra.com" %WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% NEQ 0 
> ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% 
> NEQ 0 ECHO 127.0.0.1 
> myntra.com>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "www.maddw.com" %WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% 
> NEQ 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts IF 
> %ERRORLEVEL% NEQ 0 ECHO 127.0.0.1 
> www.maddw.com>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "maddw.com" %WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% NEQ 0 
> ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% 
> NEQ 0 ECHO 127.0.0.1 maddw.com>>%WINDIR%\system32\drivers\etc\hosts 
> FIND /C /I "www.lenskart.com" %WINDIR%\system32\drivers\etc\hosts IF 
> %ERRORLEVEL% NEQ 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts 
> IF %ERRORLEVEL% NEQ 0 ECHO 127.0.0.1 
> www.lenskart.com>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "lenskart.com" %WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% NEQ 
> 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% 
> NEQ 0 ECHO 127.0.0.1 
> lenskart.com>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "www.kproxy.com" %WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% 
> NEQ 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts IF 
> %ERRORLEVEL% NEQ 0 ECHO 127.0.0.1 
> www.kproxy.com>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "kproxy.com" %WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% NEQ 0 
> ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% 
> NEQ 0 ECHO 127.0.0.1 
> kproxy.com>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "www.jabong.com" %WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% 
> NEQ 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts IF 
> %ERRORLEVEL% NEQ 0 ECHO 127.0.0.1 
> www.jabong.com>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "jabong.com" %WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% NEQ 0 
> ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% 
> NEQ 0 ECHO 127.0.0.1 
> jabong.com>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "www.flipkart.com" %WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% 
> NEQ 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts IF 
> %ERRORLEVEL% NEQ 0 ECHO 127.0.0.1 
> www.flipkart.com>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "flipkart.com" %WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% NEQ 
> 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% 
> NEQ 0 ECHO 127.0.0.1 
> flipkart.com>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "www.facebook-proxyserver.com" %WINDIR%\system32\drivers\etc\hosts IF 
> %ERRORLEVEL% NEQ 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts 
> IF %ERRORLEVEL% NEQ 0 ECHO 127.0.0.1 
> www.facebook-proxyserver.com>>%WINDIR%\system32\drivers\etc\hosts FIND 
> /C /I "facebook-proxyserver.com" %WINDIR%\system32\drivers\etc\hosts 
> IF %ERRORLEVEL% NEQ 0 ECHO 
> %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% NEQ 0 
> ECHO 127.0.0.1 
> facebook-proxyserver.com>>%WINDIR%\system32\drivers\etc\hosts FIND /C 
> /I "www.dontfilter.us" %WINDIR%\system32\drivers\etc\hosts IF 
> %ERRORLEVEL% NEQ 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts 
> IF %ERRORLEVEL% NEQ 0 ECHO 127.0.0.1 
> www.dontfilter.us>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "dontfilter.us" %WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% 
> NEQ 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts IF 
> %ERRORLEVEL% NEQ 0 ECHO 127.0.0.1 
> dontfilter.us>>%WINDIR%\system32\drivers\etc\hosts FIND /C /I 
> "www.dolopo.net" %WINDIR%\system32\drivers\etc\hosts IF %ERRORLEVEL% 
> NEQ 0 ECHO %NEWLINE%>>%WINDIR%\system32\drivers\etc\hosts IF 
> %ERRORLEVEL% NEQ 0 ECHO 127.0.0.1 
> www.dolopo.net>>%WINDIR%\system32\drivers\etc\hosts ECHO Finished GOTO 
> END 
> 
> 
> :END ECHO. ping -n 11 127.0.0.1 > nul EXIT 
+0

不要在每行前使用后面的代码..这是一个错误。我懒得删除它。 – Maity 2016-02-04 13:48:41

+1

你绝对应该 – Milkmannetje 2016-04-21 08:24:15

0

我的情况下,其他人加入这个答案想用来存储主机条目格式就像普通的主机文件一个txt文件设置。这将查找TAB分隔符。这是基于来自@Rashy和@ that0n3guy的答案。 FOR命令周围可以注意到这些差异。

@echo off 
TITLE Modifying your HOSTS file 
ECHO. 

:: BatchGotAdmin 
:------------------------------------- 
REM --> Check for permissions 
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system" 

REM --> If error flag set, we do not have admin. 
if '%errorlevel%' NEQ '0' (
    echo Requesting administrative privileges... 
    goto UACPrompt 
) else (goto gotAdmin) 

:UACPrompt 
    echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs" 
    set params = %*:"=" 
    echo UAC.ShellExecute "cmd.exe", "/c %~s0 %params%", "", "runas", 1 >> "%temp%\getadmin.vbs" 

    "%temp%\getadmin.vbs" 
    del "%temp%\getadmin.vbs" 
    exit /B 

:gotAdmin 
    pushd "%CD%" 
    CD /D "%~dp0" 
:-------------------------------------- 

:LOOP 
SET Choice= 
SET /P Choice="Do you want to modify HOSTS file ? (Y/N)" 

IF NOT '%Choice%'=='' SET Choice=%Choice:~0,1% 

ECHO. 
IF /I '%Choice%'=='Y' GOTO ACCEPTED 
IF /I '%Choice%'=='N' GOTO REJECTED 
ECHO Please type Y (for Yes) or N (for No) to proceed! 
ECHO. 
GOTO Loop 


:REJECTED 
ECHO Your HOSTS file was left unchanged. 
ECHO Finished. 
GOTO END 


:ACCEPTED 
setlocal enabledelayedexpansion 
::Create your list of host domains 
for /F "tokens=1,2 delims= " %%A in (%WINDIR%\System32\drivers\etc\storedhosts.txt) do (
    SET _host=%%B 
    SET _ip=%%A 
    SET NEWLINE=^& echo. 
    ECHO Adding !_ip!  !_host! 
    REM REM ::strip out this specific line and store in tmp file 
    type %WINDIR%\System32\drivers\etc\hosts | findstr /v !_host! > tmp.txt 
    REM REM ::re-add the line to it 
    ECHO %NEWLINE%^!_ip!  !_host! >> tmp.txt 
    REM ::overwrite host file 
    copy /b/v/y tmp.txt %WINDIR%\System32\drivers\etc\hosts 
    del tmp.txt 
) 

ipconfig /flushdns 
ECHO. 
ECHO. 
ECHO Finished, you may close this window now. 
GOTO END 

:END 
ECHO. 
PAUSE 
EXIT 

实施例 “storedhosts.txt”(制表符分隔)

127.0.0.1 mysite.com 
168.1.64.2 yoursite.com 
192.1.0.1 internalsite.com