我希望找到一种方法将字符串中列出的所有MX记录检索到文本文件中 到目前为止,我有一个脚本,它给了我一个我用过的HTML输出:
$Records = Get-Content -Path "C:\NETESP\MXRecords\MXRecordsHTML.txt" | Select-String -SimpleMatch -Pattern "MX: "
这导致$ Records包含一个字符串:
<DIV class="well transcript"> 0 nsb.nic.uk 156.154.101.3 NON-AUTH Recieved 2 Referrals ,
rcode= NS: ns.mainnameserver.com,NS: ns2.mainnameserver.com, <BR><BR> 1 ns2.
mainnameserver.com 79.170.43.3 AUTH Recieved 2 Answers , rcode= MX: exchange
=engine01-20052-1.icritical.com/pref=10,MX: exchange=engine02-20052-2.icritical.com/pref=20, <BR><BR></DIV></DIV></DIV></SPAN><TD>mx: </TD>
有没有办法将MX记录和首选项值放入文本文件中?根据运行的服务器,最多可能有6个MX记录。
答案 0 :(得分:1)
像这样修改Select-String
:
... | Select-String 'MX:\s*([^,]+)' -AllMatches |
Foreach {$_.Matches | Foreach {$_.Value}}
您需要在正则表达式中创建捕获组([^,]+)
。这将允许您只提取匹配文本的那部分。如果每行可以有多个MX记录,您还需要指定-AllMatches
。之后,您将要枚举每个Matches
并吐出我们的值(这将是捕获组文本)。
BTW此捕获组假定每个MX记录以逗号结尾。如果不是这种情况,您需要找到合适的正则表达式来捕获周围文本中的MX记录。