Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
59 views
in Technique[技术] by (71.8m points)

Powershell triming and converting to HTML

I have a script using a NPRINT Api, I drag out name and lastexecution from the API. In the picture you can see how lastexecution looks. I want to trim T and foward, meaning I don't want to see anything after the date.

I tried working with | % {$_.name + " " + $_.lastexecution.Split('T')[0]} or similar, but it won't work due to the converting to HTML.

What should I use here?

Lastexecution

The code for the whole script

$Today = Get-Date -Format yyyyMMdd
$smtpServer = "secret"
#$mailSender = "secret"
$mailReceiver = "secret"
$mailSubject = "Nprint statusrapport $today"
$bodym?nad = Get-NPTasks | Select-Object name,lastexecution | Where-Object {$_.name -match "tskPrim?rv?rdDetaljM?nad*" } | ConvertTo-Html -head $head -PreContent $Head_Precontent1| out-string #| ConvertTo-Html -as Table | Out-String
$bodykomplett = Get-NPTasks | Select-Object name,lastexecution | Where-Object {$_.name -match "tskPrim?rv?rdDetaljKomplett*" } | ConvertTo-Html -head $head -PreContent $Head_Precontent2 | out-string #| ConvertTo-html -as Table | Out-String 
$Rad1 = "-Om mailet ?r tomt inneb?r det att NPrint ligger nere"
$Rad2 = "-Om alla m?nadsrapporter inte triggats beh?ver man logga p? NPrint och kolla i publish task efter fel "
$Rad3 = "-Om alla komplettrapporter inte g?tt den 3:e beh?ver man logga p? NPrint och kolla i publish task efter fel."

$Head_Precontent1 = "<H2>M?nadsrapporterna skall g? varje dag</H2>"
$Head_Precontent2 = "<H2>Komplettrapporten skall g? den 3:e varje m?nad</H2>"
$bodycontent = "<H3>
$rad1<br>
$rad2<br> 
$rad3<br>
</H3>"

$head=@"
<style>
@charset "UTF-8";

table
{
font-family:"Trebuchet MS", Arial, Helvetica, sans-serif;
border-collapse:collapse;
}
td
{
font-size:1em;
border:1px solid #98bf21;
padding:5px 5px 5px 5px;
}
th
{
font-size:1.1em;
text-align:center;
padding-top:5px;
padding-bottom:5px;
padding-right:7px;
padding-left:7px;
background-color:#A7C942;
color:#ffffff;
}
name tr
{
color:#F00000;
background-color:#EAF2D3;
}
</style>
"@

$bodyend = @"


-Om mailet ?r tomt inneb?r det att NPrint ligger nere
-Om alla m?nadsrapporter inte triggats beh?ver man logga p? NPrint och kolla i publish task efter fel 
-Om alla komplettrapporter inte g?tt den 3:e beh?ver man logga p? NPrint och kolla i publish task efter fel.


"@

$output = $bodym?nad + bodykomplett  + $bodycontent
Send-MailMessage -to $mailReceiver -subject $mailSubject -body $output -SmtpServer $smtpServer -BodyAsHtml
question from:https://stackoverflow.com/questions/65830427/powershell-triming-and-converting-to-html

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Change your Select-Object statements from:

... | Select-Object name,lastexecution | ...

to:

... | Select-Object Name,@{Name='LastExecution';Expression={$_.LastExecution -split 'T' |Select-Object -First 1}} | ...

This will make PowerShell "re-calculate" the value of the LastExecution property before passing it to the downstream commands


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

1.4m articles

1.4m replys

5 comments

56.9k users

...