<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[Heck's  Blog]]></title> 
<link>https://www.heckjj.com/index.php</link> 
<description><![CDATA[一瞬间的决定，往往可以改变很多，事实上，让自己成功的往往不是知识，是精神！ 如果你总是为自己找借口，那只好让成功推迟。执行力，今天！]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[Heck's  Blog]]></copyright>
<item>
<link>https://www.heckjj.com/post//</link>
<title><![CDATA[使用批处理脚本修改hosts文件]]></title> 
<author>Heck &lt;@hecks.tk&gt;</author>
<category><![CDATA[运维管理]]></category>
<pubDate>Sun, 04 Dec 2022 06:45:46 +0000</pubDate> 
<guid>https://www.heckjj.com/post//</guid> 
<description>
<![CDATA[ 
	最近公司有个项目需要对本地hosts文件进行修改，添加一条本地域名解析记录，如果让客户去操作，很容易破坏掉原先的hosts文件，最好是能封装成一个批处理脚本，用户只需要以管理员权限运行，然后根据菜单选择需要执行的功能即可。<br/><br/>1 批处理脚本<br/>:: 关闭命令的回显<br/>@echo off<br/>:: 设置hosts文件路径<br/>set HOSTS=C:&#92;Windows&#92;System32&#92;drivers&#92;etc&#92;hosts<br/>:: 判断当前路径是否存在 hosts.init 文件, 不存在则备份<br/>if not exist %HOSTS%.init (<br/>&nbsp;&nbsp;&nbsp;&nbsp;copy /y %HOSTS% %HOSTS%.init &amp;&amp; echo 系统hosts文件备份完成!<br/>)<br/><br/>:: %date%=2022年12月04日<br/>:: %time%= 14:45:38:96<br/>:: 年 yyyy = %date:~0,4% 表示指针从左到右偏移 0 位, 然后提取 4 字符<br/>:: 月 mm&nbsp;&nbsp; = %date:~5,2% 表示指针从左到右偏移 5 位, 然后提取 2 字符<br/>:: 日 dd&nbsp;&nbsp; = %date:~8,2% 表示指针从左到右偏移 8 位, 然后提取 2 字符<br/>set yyyymmdd=%date:~0,4%-%date:~5,2%-%date:~8,2%<br/>:: 时 hh&nbsp;&nbsp; = %time:~0,2% 表示指针从左到右偏移 0 位, 然后提取 2 字符<br/>:: 分 mm&nbsp;&nbsp; = %time:~3,2% 表示指针从左到右偏移 3 位, 然后提取 2 字符<br/>:: 秒 ss&nbsp;&nbsp; = %time:~6,2% 表示指针从左到右偏移 6 位, 然后提取 2 字符<br/>set hh=%time:~0,2%<br/>set mm=%time:~3,2%<br/>set ss=%time:~6,2%<br/>:: 当 hh 小于等于 9 时, 在前面补 0<br/>if %hh% leq 9 (set hh=0%hh:~1,1%)<br/><br/>GOTO MENU<br/>:MENU<br/>ECHO.<br/>ECHO.############################## 修改系统hosts解析文件 ##############################<br/>ECHO.#<br/>ECHO.# 1.添加域名解析<br/>ECHO.#<br/>ECHO.# 2.编辑hosts文件<br/>ECHO.#<br/>ECHO.# 3.备份hosts文件<br/>ECHO.#<br/>ECHO.# 4.还原hosts文件<br/>ECHO.#<br/>ECHO.# 5.刷新dns缓存并退出<br/>ECHO.#<br/>ECHO.############################### %yyyymmdd% %hh%:%mm%:%ss% ###############################<br/>set /p=&quot;请输入您要操作的序号：&quot;&lt;nul<br/>@set /p&nbsp;&nbsp;sel=<br/>if &quot;%sel%&quot;==&quot;1&quot;&nbsp;&nbsp;goto add_ipdomain<br/>if &quot;%sel%&quot;==&quot;2&quot;&nbsp;&nbsp;goto edit_hosts<br/>if &quot;%sel%&quot;==&quot;3&quot;&nbsp;&nbsp;goto backup_hosts<br/>if &quot;%sel%&quot;==&quot;4&quot;&nbsp;&nbsp;goto reset_hosts<br/>if &quot;%sel%&quot;==&quot;5&quot;&nbsp;&nbsp;goto refresh_dns<br/>PAUSE<br/>:add_ipdomain<br/>set /p=&quot;请输入IP地址和域名（中间以空格分隔）:&quot;&lt;nul<br/>@set /p&nbsp;&nbsp;ip_domain=<br/>type %HOSTS% &#124;findstr /v &quot;^#&quot;&#124; findstr /i &quot;%ip_domain%&#92;&gt;&quot;<br/>if %errorlevel% == 0 ( <br/>&nbsp;&nbsp;echo %ip_domain% 已存在,请重新添加！&amp;&amp; goto MENU <br/> ) else ( <br/>&nbsp;&nbsp;echo.%ip_domain% &gt;&gt; %HOSTS% &amp;&amp; echo %ip_domain% 添加成功,请按任意键返回菜单！&amp;&amp; pause &gt;nul <br/> ) <br/>goto MENU<br/>:edit_hosts<br/>title 编辑hosts本地域名解析文件<br/>notepad %HOSTS%<br/>echo 按任意键返回菜单！<br/>pause &gt;nul<br/>goto MENU<br/>:backup_hosts<br/>title 备份hosts文件<br/>set yyyymmdd=%date:~0,4%%date:~5,2%%date:~8,2%<br/>copy /y %HOSTS% %HOSTS%.%yyyymmdd%%hh%%mm%<br/>echo (&quot;%HOSTS%.%yyyymmdd%%hh%%mm%&quot;) 备份完毕,按任意键返回菜单！<br/>pause &gt;nul<br/>goto MENU<br/>pause<br/>:reset_hosts<br/>title 还原hosts文件<br/>copy /y %HOSTS%.init %HOSTS%<br/>echo hosts文件已还原至初始状态,按任意键返回菜单！<br/>pause &gt;nul<br/>goto MENU<br/>:refresh_dns<br/>title 刷新本地dns缓存并退出<br/>echo 查看修改后的hosts文件内容,5秒后退出!<br/>type &quot;%HOSTS%&quot; &#124;findstr /v &quot;^#&quot;&#124;findstr &quot;[0-9]&quot;<br/>ping -n 5 127.0.0.1&gt;nul<br/>ipconfig /flushdns<br/>echo 刷新本地缓存成功，即将退出!<br/>ping -n 3 127.0.0.1&gt;nul<br/>echo.<br/>exit<br/><br/>2 使用方法<br/>2.1 功能菜单<br/>第一次以管理员权限运行脚本会备份一份hosts.init文件，作为hosts初始文件，方便以后还原。<br/><br/><br/><br/>2.2 添加域名解析<br/>添加域名解析这里采用的是手动输入 IP 地址 + 域名，并且会检索hosts文件里是否已经存在对应的 IP 地址和域名，如果存在，则提示用户重新添加。<br/><br/><br/><br/>2.3 编辑 hosts 文件<br/>这里其实就是调用记事本来打开hosts文件。<br/><br/><br/><br/>2.4 备份 hosts文件<br/>这里的备份文件是以hosts.日期时间的文件名格式来备份的。<br/><br/><br/><br/>2.5 还原 hosts文件<br/>还原其实就是将 hosts.init 去掉后缀名，替换掉原先的 hosts 文件。<br/><br/><br/><br/>2.6 刷新 dns 缓存并退出<br/>在刷新 dns 前，会先将 hosts 文件中的内容打印一下，然后执行刷新 dns 命令后退出脚本。<br/><br/>
]]>
</description>
</item><item>
<link>https://www.heckjj.com/post//#blogcomment</link>
<title><![CDATA[[评论] 使用批处理脚本修改hosts文件]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>https://www.heckjj.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>