Modificar el archivo de hosts usando un script por lotes

Recientemente, la compañía tiene un proyecto que necesita modificar el archivo de hosts locales y agregar un registro de resolución de nombre de dominio local. Si el cliente puede operar, es fácil destruir el archivo de hosts original. Lo mejor es encapsularlo en un secuencia de comandos por lotes Los usuarios solo necesitan usar Ejecutar con privilegios de administrador y luego seleccionar la función que se realizará de acuerdo con el menú.

1 secuencia de comandos por lotes

:: 关闭命令的回显
@echo off
:: 设置hosts文件路径
set HOSTS=C:\Windows\System32\drivers\etc\hosts
:: 判断当前路径是否存在 hosts.init 文件, 不存在则备份
if not exist %HOSTS%.init (
    copy /y %HOSTS% %HOSTS%.init && echo 系统hosts文件备份完成!
)

:: %date%=2021年07月07日
:: %time%= 9:12:38:96
:: 年 yyyy = %date:~0,4% 表示指针从左到右偏移 0 位, 然后提取 4 字符
:: 月 mm   = %date:~5,2% 表示指针从左到右偏移 5 位, 然后提取 2 字符
:: 日 dd   = %date:~8,2% 表示指针从左到右偏移 8 位, 然后提取 2 字符
set yyyymmdd=%date:~0,4%-%date:~5,2%-%date:~8,2%
:: 时 hh   = %time:~0,2% 表示指针从左到右偏移 0 位, 然后提取 2 字符
:: 分 mm   = %time:~3,2% 表示指针从左到右偏移 3 位, 然后提取 2 字符
:: 秒 ss   = %time:~6,2% 表示指针从左到右偏移 6 位, 然后提取 2 字符
set hh=%time:~0,2%
set mm=%time:~3,2%
set ss=%time:~6,2%
:: 当 hh 小于等于 9 时, 在前面补 0
if %hh% leq 9 (set hh=0%hh:~1,1%)

GOTO MENU
:MENU
ECHO.
ECHO.############################## 修改系统hosts解析文件 ##############################
ECHO.#
ECHO.# 1.添加域名解析
ECHO.#
ECHO.# 2.编辑hosts文件
ECHO.#
ECHO.# 3.备份hosts文件
ECHO.#
ECHO.# 4.还原hosts文件
ECHO.#
ECHO.# 5.刷新dns缓存并退出
ECHO.#
ECHO.############################### %yyyymmdd% %hh%:%mm%:%ss% ###############################
set /p="请输入您要操作的序号:"<nul
@set /p  sel=
if "%sel%"=="1"  goto add_ipdomain
if "%sel%"=="2"  goto edit_hosts
if "%sel%"=="3"  goto backup_hosts
if "%sel%"=="4"  goto reset_hosts
if "%sel%"=="5"  goto refresh_dns
PAUSE
:add_ipdomain
set /p="请输入IP地址和域名(中间以空格分隔):"<nul
@set /p  ip_domain=
type %HOSTS% |findstr /v "^#"| findstr /i "%ip_domain%\>"
if %errorlevel% == 0 ( 
  echo %ip_domain% 已存在,请重新添加!&& goto MENU 
 ) else ( 
  echo.%ip_domain% >> %HOSTS% && echo %ip_domain% 添加成功,请按任意键返回菜单!&& pause >nul 
 ) 
goto MENU
:edit_hosts
title 编辑hosts本地域名解析文件
notepad %HOSTS%
echo 按任意键返回菜单!
pause >nul
goto MENU
:backup_hosts
title 备份hosts文件
set yyyymmdd=%date:~0,4%%date:~5,2%%date:~8,2%
copy /y %HOSTS% %HOSTS%.%yyyymmdd%%hh%%mm%
echo ("%HOSTS%.%yyyymmdd%%hh%%mm%") 备份完毕,按任意键返回菜单!
pause >nul
goto MENU
pause
:reset_hosts
title 还原hosts文件
copy /y %HOSTS%.init %HOSTS%
echo hosts文件已还原至初始状态,按任意键返回菜单!
pause >nul
goto MENU
:refresh_dns
title 刷新本地dns缓存并退出
echo 查看修改后的hosts文件内容,5秒后退出!
type "%HOSTS%" |findstr /v "^#"|findstr "[0-9]"
ping -n 5 127.0.0.1>nul
ipconfig /flushdns
echo 刷新本地缓存成功,即将退出!
ping -n 3 127.0.0.1>nul
echo.
exit

2 Cómo usar

2.1 Menú de funciones

Al ejecutar el script con privilegios de administrador por primera vez, se realizará una copia de seguridad de un hosts.initarchivo como hostsarchivo inicial para una restauración posterior.

imagen-20210707110118620

2.2 Añadir resolución de nombres de dominio

Agregar resolución de nombre de dominio aquí es ingresar manualmente la IPdirección + nombre de dominio, y buscará hostssi la IPdirección Si es así, se le pedirá al usuario que lo agregue nuevamente.

imagen-20210707110214077

imagen-20210707110319484

2.3 Editar archivo de hosts

Aquí está llamando al Bloc de notas para abrir el archivo de hosts.

imagen-20210707110418796

2.4 Archivo de hosts de copia de seguridad

El archivo de respaldo aquí está respaldado en hosts.日期时间el formato de nombre de archivo.

imagen-20210707110456765

2.5 Restaurar el archivo de hosts

Restaurar es en realidad hosts.initeliminar sufijo y reemplazar el hostsarchivo original.

imagen-20210707110540412

2.6 Vaciar la caché de dns y salir

dnsAntes de actualizar , hostsprimero imprimirá el contenido del archivo, luego ejecutará el dnscomando y saldrá del script.

imagen-20210707110618166

Autor del artículo: GentleTK
Enlace original: https://gentletk.gitee.io/ Use un script por lotes para modificar el archivo de hosts

Supongo que te gusta

Origin blog.csdn.net/qq_40531408/article/details/126070333
Recomendado
Clasificación