2016-04-27 10 views
1

ここ数年、私の問題を解決するさまざまな方法を試し、私が持っている他の作業スクリプトの一部を追加してここで研究していますが、目の私に明白なを指すために。Powershell電子メールの出力が正しくフォーマットされていない

これは、次の操作を行い、私のスクリプトです:、ループで

  • テキストファイルのフォルダパスを入れ、チェックするために、テキストファイルを使用しています

    • リスト、特定の場所にあるすべてのフォルダをその後、各フォルダ内の最新のファイル、出力(「[」と表記)直近の10個のタイムスタンプ
    • メール結果

    上記作品のすべて、私は正しい情報と電子メールを持っています。問題は、電子メールが書式なしですべて同じ行に到着することです。

    私が以前持っていた作業スクリプトから自分のスタイルタグを取得したので、どこが間違っているのか分かりません。何か案は?

    $style = "<style>BODY{font-family: Arial; font-size: 10pt;}" 
    $style = $style + "TABLE{border: 1px solid black; border-collapse:collapse;}" 
    $style = $style + "TH{border: 1px solid black; background: #dddddd; padding:  5px; }" 
    $style = $style + "TD{border: 1px solid black; padding: 5px; }" 
    $style = $style + "</style>" 
    $subject = "Processing Log Check at " + (Get-Date -Format g) 
    $logpaths = Get-Content -Path C:\Powershell\xxxx\scenariologlocation.txt 
    $output = foreach ($logpath in $logpaths) 
    { 
    Write-Output $logpath 
    Get-ChildItem -path $logpath | sort LastWriteTime | select -ExpandProperty FullName -last 1 | Out-File C:\Powershell\path.txt 
    $path = Get-Content -Path C:\Powershell\path.txt 
    Get-Content -Path $path | Select-String -SimpleMatch "[" | select Line -last 10 | format-table -HideTableHeaders | Out-String 
    } 
    $body = (ConvertTo-Html -Head $style -body $output | Out-String) 
    Send-MailMessage -From "xxxxxx" -To "xxxxxx" -Subject $subject -Body $body -BodyAsHtml -SmtpServer "xxxxxxx" 
    
  • 答えて

    0

    私はあなたが$outputに文字列を渡した後、私の目には、スクリプトの最後の部分はそう

    $output = foreach ($logpath in $logpaths) 
    { 
    Write-Output $logpath 
    Get-ChildItem -path $logpath | sort LastWriteTime | select -ExpandProperty FullName -last 1 | Out-File C:\Powershell\path.txt 
    $path = Get-Content -Path C:\Powershell\path.txt 
    Get-Content -Path $path | Select-String -SimpleMatch "[" | select Line -last 10 
    } 
    $body = ($output | ConvertTo-Html -Head $style) | Out-String 
    Send-MailMessage -From "xxxxxx" -To "xxxxxx" -Subject $subject -Body $body -BodyAsHtml -SmtpServer "xxxxxxx" 
    

    のようなものになるはずですConvertto-Html -body

    に渡してはならないと思いますConvertto-Html$outputのすべてのオブジェクトにテーブルを作成できます。 HTMLをOut-Stringにパイプする必要があるかどうかはわかりません。ここにPowershellはありません。しかし、私はこれが助けになると思います。

    +0

    ありがとうございます、これは進行状況を示し、フォーマットされた電子メールを生成しますが、生成されたコンテンツは間違っています。私はちょっと微妙に変わって、私が何を思いつくのか見てみましょう... – PJC83

    0

    多くの手品やファンドリングの後、私は多くのことを書き直してしまい、必要なものを別の方法でメールに入れました。

    私は元のコードから(再書き込みに頼らずに)私が必要としていたものを達成できると確信していません。

    関連する問題