批处理添加多个新的域名到hosts
要求:批处理(.bat)添加多个新的域名到hosts,先检测是否已存在,如果已存在的域名就不添加
其他尚未存在的域名,则直接添加
google搜寻是有找到代码 如下:
setstHosts=X.X.X.Xwww.domainname.com FOR/F"eol=#tokens=1delims="%%iin(%systemroot%\system32\drivers\etc\hosts)doif"%stHosts%"=="%%i"exit echo%stHosts%>>%systemroot%\system32\drivers\etc\hosts
不过此代码只能检测一行域名
如果要添加以下各种不同域址,如何改写代码才能检测多个的域名?
127.0.0.1mcfg.sandai.net
127.0.0.1211.94.190.80
127.0.0.1advstat.xunlei.com
123.87.86.5biz5.sandai.net
527.66.13.125cknum.sandai.net
110.45.215.113cl.kankan.xunlei.com
127.0.0.1float.sandai.net
127.0.0.1mcfg.sandai.net
180.70.134.154mtips.xunlei.com
127.0.0.1pubstat.sandai.net
216.58.221.74recommend.xunlei.com
127.0.0.1wy.xunlei.com
110.45.229.148buy.safe.xunlei.com
方法一:
@echooff&setlocalenabledelayedexpansion set"file=%systemroot%\system32\drivers\etc\hosts" for/f"tokens=2"%%iin('more+11"%~0"')doset#%%i=1 for/f"delims="%%iin('findstr/n.*%file%')do( set"s=%%i" set"s=!s:*:=!" for/f"tokens=1,2"%%jin("#!s!")doifnotdefined#%%kecho;!s! ) more+11"%~0" pause&exit
方法二:带上检测功能(各种域址写在名为list.txt的文件中,一行一个)
@echooff ifexist%temp%\$del/q%temp%\$ for/f"delims="%%iin(%systemroot%\system32\drivers\etc\hosts)doecho%%i>>%temp%\$ for/f"delims="%%ain('findstr/v/g:"%temp%\$"list.txt')doecho%%a>>%systemroot%\system32\drivers\etc\hosts