批量清空主机文件并添加多行

时间:2017-07-01 07:50:41

标签: windows batch-file hosts

我发现了大约六个(123等)关于如何向Windows主机文件添加行的问题,但如果没有这些行很容易维护,您希望经常使用单个批处理文件更新多行,您可以在其中将旧行替换为新行作为块,并删除hosts文件中的所有其他内容。

127.0.0.1 example1.com
127.0.0.1 example2.com
127.0.0.1 example3.com
127.0.0.1 example4.com
127.0.0.1 example5.com

我希望你们能告诉我我错过了什么,在哪里看,或者甚至可以给我一个例子。我非常感谢你的帮助。

1 个答案:

答案 0 :(得分:1)

如果你确定你知道自己在做什么:
用新内容重写整个hosts文件:

@Echo off
Set "Hosts=%windir%\System32\drivers\etc\hosts"
Copy "%Hosts%" "%Hosts%.bak"
( Echo 127.0.0.1 example1.com
  Echo 127.0.0.1 example2.com
  Echo 127.0.0.1 example3.com
  Echo 127.0.0.1 example4.com
  Echo 127.0.0.1 example5.com
) > "%Hosts%"

此批次将附加到原始主机文件,并将附加日期和时间hosts_yyyyMMddhhmmss.bak的副本保存到当前用户Documents文件夹,这应该没问题。

@Echo off
for /f "delims=." %%A in (
  'wmic os get LocalDateTime^|findstr ^^[0-9]'
) do Set "Bak=%USERPROFILE%\Documents\Hosts_%%A.bak"

Set "Hosts=%windir%\System32\drivers\etc\hosts"
Copy /Y "%Hosts%" "%Bak%"

( Echo 127.0.0.1 example1.com
  Echo 127.0.0.1 example2.com
  Echo 127.0.0.1 example3.com
  Echo 127.0.0.1 example4.com
  Echo 127.0.0.1 example5.com
) >> "%Hosts%"