2014-11-14 2 views
1

나는 powershell을 사용하여 htm 파일의 전자 메일 주소를 찾고 텍스트 파일에 기록합니다. 문자열에 OK를 찾았지만 전자 메일 주소뿐만 아니라 줄 번호도 파일에 기록하는 select-string을 사용하고 있습니다.powershell select-string 파일로 출력

내가 원하는 이메일 주소입니다! 그것은 충분히 단순 해 보이지만 그것을 깰 수는 없습니다.

[email protected]  

을 :

Line                                          
----                                          
       [email protected]  

내가 원하는 건에 이메일 주소를 하나의 라인 : emailaddressee.txt은 다음과 같습니다 그러나

$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 
} 

: 여기

내 코드입니다 분명히 Powershell에서이 결과 파일을 처리하여이 문제를 해결할 수는 있지만 누군가가 문제를 일으킬 수 있기를 바라고 있습니다. i 간단한 한 단계 결과.

감사

이안

답변

4

변경 다음 줄

$sel = select-string -list $htm -pattern $pattern | Select-Object Line 

사람 : 보장합니다

$sel = select-string -list $htm -pattern $pattern | Select-Object -ExpandProperty Line 

을 사용하면 텍스트 표현보다는 개체의 속성을 쓰기 개체 자체의

+0

환상적! arco444에 감사드립니다. 치료를해라. 또한 앞부분에 공백을 제거하고 이메일 주소를 남기려면 '$ sel = $ sel.trim()' 을 추가했습니다. 나는 아직 당신에게 상흔을 남기는 데 충분한 평판 포인트가 없지만 어쨌든 고맙습니다. – DiamondBeezer