Windows批量添加/替换hosts文件中的条目

时间:2013-08-28 13:54:18

标签: regex windows batch-file

我阅读了这个主题First step,这篇文章很有用。我可以在主机文件中添加几行。

我现在正在尝试用正则表达式搜索和替换字符串,但没有成功。例如,如果我的主机文件包含“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% 

我迷路了所以谢谢你的回答:)

2 个答案:

答案 0 :(得分:0)

dbenham请参阅https://stackoverflow.com/a/16735079/891976了解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

答案 1 :(得分:0)

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