我正在使用powershell在htm文件中找到一个电子邮件地址并将其写入文本文件。 我正在使用select-string查找字符串OK,但是将行号和电子邮件地址写入文件。
我想要的只是电子邮件地址!这看起来很简单,但我无法破解它。
这是我的代码:
$List_htm = Get-ChildItem -Filter *.htm
# Loop:
foreach ($htm in $List_htm)
{
# Locate recipient email address to send to:
# Regex pattern to match:
$pattern = '(^\W*.*@.*\.{1,}\w*$)'
$sel = select-string -list $htm -pattern $pattern | Select-Object Line
If ($Sel -eq $null)
{
write-host "FAILS - $htm does NOT contain $pattern"
}
Else
{
write-host "WORKS! $pattern `n$sel"
}
Write-host "end"
$EmailAddressee = $PDFFolder + "EmailAddressee.txt"
$sel | Out-File $EmailAddressee
}
然而,emailaddressee.txt看起来像这样:
Line
----
fred.bloggs@helpmeplease.com
我想要的只是一行,其电子邮件地址位于:
fred.bloggs@helpmeplease.com
我显然可以在powershell中进一步处理这个结果文件来获得这个,但我希望有人能想出一个简单的一阶段结果。
由于
伊恩
答案 0 :(得分:4)
更改以下行:
$sel = select-string -list $htm -pattern $pattern | Select-Object Line
要:
$sel = select-string -list $htm -pattern $pattern | Select-Object -ExpandProperty Line
这将确保您编写对象的属性而不是对象本身的文本表示