Donaldinio
Donaldinio

Reputation: 606

Writing powershell functions within a string

If I have:

Write-Host "[$(Get-Date -displayhint time)] backup starting..."

I get:

[02/17/2010 1:26:12pm] backup starting...

i. e. the Get-Date parameters are being ignored and is just returning the output of Get-Date.

What's the best way to do inject the current time in the middle of a string?

thanks

Upvotes: 2

Views: 342

Answers (2)

Jordij
Jordij

Reputation: 158

You can also use the ToString() method of the DateTime class. I usually do something like this:

[PS] C:\>write-host "$((get-date).tostring('yyyy.MM.dd-HH:mm:ss'))"
2010.02.19-09:54:51

Upvotes: 0

Joey
Joey

Reputation: 354356

Well, in this case you're converting to a string because you are using the output in a string. The result of the Get-Date command is still a DateTime object. The display hint would then be honored by the Out-Host cmdlet.

You can use the -Format parameter to force a certain format in which case the cmdlet returns a string:

Get-Date -Format T

("T" being the format string for the full time) which then looks like this:

PS Home:\> Write-Host "[$(Get-Date -Format T)] backup starting..."
[19:35:12] backup starting...

Upvotes: 8

Related Questions