繁体   English   中英

为什么在 Powershell 中添加引号会更改表达式的值?

[英]Why does adding quotation changes the expression's value in Powershell?

我刚刚开始学习 Powershell,有一件事我无法理解。 见下文:

> Write-output $(Get-Date -DisplayHint Date)  
    //Expect: Tuesday, November 3, 2020
    //Got: Tuesday, November 3, 2020

> Write-output "$(Get-Date -DisplayHint Date)" 
    //Expect: Tuesday, November 3, 2020
    //Got: 11/03/2020 20:42:27

对于带有引号插值的第二行,有人可以解释为什么它显示不同的格式吗?

谢谢,

这是当前文化中ToString()方法的默认格式。 此输出是“将其转换为字符串”的结果。 以下示例在转换为字符串时都会产生类似的输出。

Write-Host(将输出转换为字符串)

Write-Host (Get-Date -DisplayHint Date)

11/3/2020 11:46:00 PM

字符串()

(Get-Date -DisplayHint Date).ToString()

11/3/2020 11:48:55 PM

-作为运算符

(Get-Date -DisplayHint Date) -as [string]

11/03/2020 23:49:37

字符串插值

"{0}" -f (Get-Date -DisplayHint Date)

11/3/2020 11:51:27 PM

当然,您已经发现通过用引号引起来转换为字符串。

如果你想控制它的格式,这里有几种方法。

(Get-Date).ToLongDateString()

Tuesday, November 3, 2020

(Get-Date).ToString("dddd, MMMM d, yyyy")

Tuesday, November 3, 2020

Get-Date -f "dddd, MMMM d, yyyy"

Tuesday, November 3, 2020

日期转换为字符串时可以自定义显示。 在上面的代码中,您用双引号括起来,powershell 将其视为字符串。 (Get-Date -DisplayHint Date).toString() 也可能给你同样的结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM