shell TXT转化成html,在Powershell Send-MailMessage中将txt文件转换为HTML

PowerShell可以更好地处理对象,所以我建议除了从字符串和正则表达式构建html文件之外的其他内容。

虽然我要呈现的代码看起来很乏味,但工作效率更高,并且可以轻松地为其他任务量身定制。此代码的第一部分来自my answer to another question about parsing fixed width data from a test file。第二个是简单展示ConvertTo-HTML的工作原理。前者需要利用后者。假设文件“C:\ temp \ Test.txt”是您的日志文件并根据需要进行替换。对于此代码段末​​尾的输出文件路径也是如此。

# Convert the fixed width left aligned file into a collection of psobjects

$data = Get-Content C:\temp\Test.txt | Where-Object{![string]::IsNullOrWhiteSpace($_)}

$headerString = $data[0]

$headerElements = $headerString -split "\s+" | Where-Object{$_}

$headerIndexes = $headerElements | ForEach-Object{$headerString.IndexOf($_)}

$results = $data | Select-Object -Skip 1 | ForEach-Object{

$props = @{}

$line = $_

For($indexStep = 0; $indexStep -le $headerIndexes.Count - 1; $indexStep++){

$value = $null # Assume a null value

$valueLength = $headerIndexes[$indexStep + 1] - $headerIndexes[$indexStep]

$valueStart = $headerIndexes[$indexStep]

If(($valueLength -gt 0) -and (($valueStart + $valueLength) -lt $line.Length)){

$value = ($line.Substring($valueStart,$valueLength)).Trim()

} ElseIf ($valueStart -lt $line.Length){

$value = ($line.Substring($valueStart)).Trim()

}

$props.($headerElements[$indexStep]) = $value

}

[pscustomobject]$props

}

# Build the html from the $result

$style = @"

body{border: 1px solid black; border-collapse: collapse}

th{border: 1px solid black; background: #dddddd; padding: 5px}

td{border: 1px solid black; padding: 5px}

"@

$results | Select-Object $headerElements | ConvertTo-Html -Head $style | Set-Content c:\temp\test.html

请注意,我在上面的代码中转换了您的样式。生成的文件看起来像html:

7QTM5.png

这些列无序,但简单的Select-Object无法修复。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值