代码之家  ›  专栏  ›  技术社区  ›  Clacers

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

  •  0
  • Clacers  · 技术社区  · 9 年前

    我找到了大约半打( 1 , 2 3 关于如何向Windows主机文件中添加行的问题,但如果您想使用单个批处理文件频繁更新多行,其中可以将旧行作为块替换为新行,并删除主机文件中的所有其他行,则这些行都不容易维护。

    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 回复  |  直到 9 年前
        1
  •  1
  •   user6811411 user6811411    9 年前

    如果您确信自己知道自己在做什么:
    要使用新内容重写整个主机文件,只需执行以下操作:

    @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%"
    
    推荐文章