适用场景:
1.内部不存在DNS服务器的客户;
2.客户电脑不知道前期是否过某域名的本地解析。
整体思路:
1.备份原始hosts配置文件;
2.将hosts配置文件中包含xxxxxxxxxx.com域名的解析清空;
3.写入正确的解析到hosts配置文件。
保存及运行:
保存时编码格式需设置为:ANSI
运行时,需要适用右键-以管理员身份运行
@echo off
setlocal enabledelayedexpansion
chcp 65001
set "DATE=%date:~3,4%%date:~8,2%%date:~11,2%"
set "HOUR=%time:~0,2%"
rem 处理1~9点时间显示一位问题
if "%time:~0,1%"==" " set HOUR=0%time:~1,1%
set "MINUTE=%time:~3,2%"
set "SECOND=%time:~6,2%"
set "DATE_TIME=%DATE%%HOUR%%MINUTE%%SECOND%"
xcopy C:\Windows\system32\drivers\etc\hosts C:\Windows\system32\drivers\etc\hosts-%DATE_TIME%.bak\ /d /c /i /y
:: 备份hhosts文件
set "input_file=C:\Windows\System32\drivers\etc\hosts"
set "output_file=C:\Windows\System32\drivers\etc\temp.txt"
if exist "%output_file%" del "%output_file%"
:: 如果已存在temp.txt则删除
:: 核心代码,判断是否包含域名,包含则将该行清空
for /f "tokens=* delims=" %%a in ('type "%input_file%"') do (
set "line=%%a"
echo !line! | findstr /i "xxxxxxxxxx.com">nul &&(
set "line="
)
echo(!line!>>"%output_file%"
)
:: 核心代码,判断是否包含域名,包含则将该行清空
move /y "%output_file%" "%input_file%"
:: 用temp.txt替换原hosts文件
if exist "%output_file%" del "%output_file%"
:: 清理创建的临时文件
endlocal
:: 释放变量
:: 重新写入本地域名解析
echo 211.139.xx.xxx oazt.xxxxxxxxxx.com oa.xxxxxxxxxx.com >> C:\Windows\System32\drivers\etc\hosts
:: 刷新DNS缓存
ipconfig /flushdns
exit