【问题标题】:Windows batch to add/replace entry in hosts fileWindows批处理添加/替换主机文件中的条目
【发布时间】:2013-08-28 13:54:17
【问题描述】:

我阅读了这个主题First step,这对开始很有用。我可以在我的 hosts 文件中添加几行。

我现在尝试用正则表达式搜索和替换字符串,但没有成功。例如,如果我的主机文件包含“SOMEIP website.com”,我想修改这一行以获得“NEWIP website.com”。

我可以找到一行是否包含“website.com”,我目前不知道(如果可能的话)如何获取该行并通过正则表达式模式替换 IP 地址。

%windir%\system32\FIND /C /I "website.com" %hostpath% >nul

IF %ERRORLEVEL% NEQ 0 ECHO %NEWLINE%^%server%   website.com>>%hostpath% 

我迷路了,谢谢你的回答:)

【问题讨论】:

  • HOSTS 需要更改管理员权限,因此您需要以提升的权限运行批处理文件。
  • 我会查看“takeown”和“grant”,看看是否有帮助。感谢您的 iead。

标签: regex windows batch-file


【解决方案1】:

请参阅https://stackoverflow.com/a/16735079/891976 了解 dbenham 的 repl.bat,它支持正则表达式搜索和替换。

type "HOSTS" | repl "\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b website.com" "NEWIP website.com" m >"HOSTS.new"
move /y HOSTS.new HOSTS

Repl.bat:http://www.dostips.com/forum/viewtopic.php?f=3&t=3855

【讨论】:

  • 这很有帮助,它完全符合我的需要:)
【解决方案2】:

sed for Windows 为例:

sed -ri.bak "s/(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9]) website.com/NewIP website.com/ig" hosts

sed 制作备份副本hosts.bak

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-26
    • 1970-01-01
    • 2019-09-03
    • 1970-01-01
    • 1970-01-01
    • 2011-04-09
    • 2011-07-13
    • 2018-01-14
    相关资源
    最近更新 更多