首页 > 解决方案 > 您可以直接在 PowerShell 扩展字符串中使用格式说明符吗?

问题描述

在 PowerShell 中,我可以使用扩展字符串将变量值插入到字符串中(回答有关此问题的更多详细信息):

PS C:\> $UtcNow = [DateTime]::UtcNow
PS C:\> "UtcNow = $UtcNow"
UtcNow = 08/10/2020 09:31:51

String.Format我可以使用or运算符不太方便地做到这一点-f,然后我可以提供格式说明符:

PS C:\> "UtcNow = {0:u}" -f $UtcNow
UtcNow = 2020-08-10 09:31:51Z

PS C:\> [string]::Format("UtcNow = {0:u}", $UtcNow)
UtcNow = 2020-08-10 09:31:51Z

问题:有没有办法在和扩展字符串中使用格式说明符?

我试过的

PS C:\> "UtcNow = $UtcNow:u"   # Doesn't work
UtcNow = 

PS C:\> "UtcNow = ${UtcNow:u}"   # Doesn't work
UtcNow = 

PS C:\> "UtcNow = $($UtcNow.ToString("u"))"  # Works, but is quite cumbersome
UtcNow = 2020-08-10 09:31:51Z

标签: powershellstring-formatting

解决方案


不,PowerShell 中的可扩展字符串不评估格式说明符

-f是要走的路:)


推荐阅读