当前位置: 首页 > 编程笔记 >

批处理添加多个新的域名到hosts

储承
2023-03-14
本文向大家介绍批处理添加多个新的域名到hosts,包括了批处理添加多个新的域名到hosts的使用技巧和注意事项,需要的朋友参考一下

要求:批处理(.bat) 添加多个新的域名到hosts,先检测是否已存在,如果已存在的域名就不添加

其他尚未存在的域名,则直接添加

google搜寻是有找到代码  如下:


set stHosts= X.X.X.X www.domainname.com

FOR /F "eol=# tokens=1 delims=" %%i in (%systemroot%\system32\drivers\etc\hosts) do if "%stHosts%"=="%%i" exit

echo %stHosts%>> %systemroot%\system32\drivers\etc\hosts 

不过此代码只能检测一行域名

如果要添加以下各种不同域址,如何改写代码才能检测多个的域名?

127.0.0.1 mcfg.sandai.net
127.0.0.1 211.94.190.80
127.0.0.1 advstat.xunlei.com
123.87.86.5 biz5.sandai.net
527.66.13.125 cknum.sandai.net
110.45.215.113 cl.kankan.xunlei.com
127.0.0.1 float.sandai.net
127.0.0.1 mcfg.sandai.net
180.70.134.154 mtips.xunlei.com
127.0.0.1 pubstat.sandai.net
216.58.221.74 recommend.xunlei.com
127.0.0.1 wy.xunlei.com
110.45.229.148 buy.safe.xunlei.com

方法一:

@echo off & setlocal enabledelayedexpansion
set "file=%systemroot%\system32\drivers\etc\hosts"
for /f "tokens=2" %%i in ('more +11 "%~0"') do set #%%i=1
for /f "delims=" %%i in ('findstr /n .* %file%') do (
  set "s=%%i"
  set "s=!s:*:=!"
  for /f "tokens=1,2" %%j in ("#!s!") do if not defined #%%k echo;!s!
)
more +11 "%~0"
pause & exit

方法二:带上检测功能(各种域址写在名为list.txt的文件中,一行一个)

@echo off
if exist %temp%\$ del /q %temp%\$
for /f "delims=" %%i in (%systemroot%\system32\drivers\etc\hosts) do echo %%i>>%temp%\$
for /f "delims=" %%a in ('findstr /v /g:"%temp%\$" list.txt') do echo %%a>> %systemroot%\system32\drivers\etc\hosts
 类似资料:
  • 问题内容: 如何在csv中编写多头标头,以便第二个标头值应来自数据库 //预期的输出 //以下是用于弹簧批处理写入csv的代码段 问题答案: 您可以在中执行查询,并将结果附加到标题的第一行。

  • ENS只使用固定长度的256位加密散列来代替可读的域名。为了从域名派生散列的同时仍然保留其层次性,使用了名为Namehash的算法。例如,"alice.eth"的Namehash为 0x787192fc5378cc32aa956ddfdedbf26b24e8d78e40109add0eea2c1a012c3dec,这是域名在ENS内部的唯一表示方式。 在使用Namehash进行散列之前,首先使用U

  • 我目前有一个Spring集成流程,可以很好地工作(请参见图中的链接)。我想在当前配置的基础上添加批处理,以允许使用指数回退、断路器模式进行重试,并将作业持久化到数据库中以重新启动。 集成流由一个接收消息的网关组成 我已经搜索,阅读文档,看了大量的例子,我不知道如何将流程的最后一步封装到批处理作业中。如果上传过程中出现SFTP连接问题或其他异常,我需要重试上传字符串(作为文件的有效负载)的能力。我还

  • 我们使用Spring Batch进行一些处理,通过Reader读取一些ID,我们希望通过处理器将它们处理为“块”,然后写入多个文件。但是处理器接口一次只允许处理一个项目,我们需要进行批量处理,因为处理器依赖于第三方,不能为每个项目调用服务。 我看到我们可以为“块”中涉及的所有读取器-处理器-写入器创建包装器,以处理列表<>并委托给一些具体的读取器/处理器/写入器。但这对我来说并不是件好事。像这样:

  • 主要内容:创建别名,删除别名,替换别名别名表示现有命令创建快捷键或关键字。 假设想要执行下面的命令,不是使用选项的目录列表命令,而不是在目录列表中显示所有必要的细节。 假设如果要创建这个命令的快捷方式如下。 当要执行命令时,可以简单地键入这个单词。这个词现在已经成为命令的别名。 创建别名 别名通过使用命令进行管理。 语法 其中, macroname - 宏的简称。 text - 要调用的命令。 以下是命令的选项的说明。 编号 选项 描

  • 问题内容: 在SQL Server 2008中,我想在表中添加一列并在之后立即对其进行更新,但前提是之前尚未创建它们。如果该列之前已创建,则我不希望运行更新。 在列添加之后放置“ GO”不起作用,因为那将不是一个完整的批处理语句,但是如果我尝试像这样运行它,则会收到错误“无效的列名’COLOR_SCHEME’”。 关于如何在运行更新时使该列存在的任何想法? 问题答案: 您可以尝试使用动态SQL代替