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

Batch to empty hosts file and add multiple lines

我发现了大约六个(1, 2, 3 等)关于如何向 Windows 主机文件添加行的问题,但是如果您愿意,其中的 none 很容易维护使用单个批处理文件频繁更新多行,您可以在其中将旧行作为一个块替换为新行,并删除主机文件中的所有其他内容。

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

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

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

@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%"