在Powershell中,-Property和-ExpandProperty有什么区别?

Lau*_*ura 7 powershell command-line powershell-ise

运行 cmdlet 时,输出略有不同,我只是想了解这两个 cmdlet 之间的区别以及为什么要使用其中一个而不是另一个。

例子:

Get-Date | Select -Property DayOfWeek
Run Code Online (Sandbox Code Playgroud)

输出:

DayOfWeek
---------
Saturday
Run Code Online (Sandbox Code Playgroud)


Get-Date | Select -ExpandProperty DayOfWeek

Saturday
Run Code Online (Sandbox Code Playgroud)

mao*_*izm 5

介绍

\n\n

您可以通过将 Powershell 中的任何对象提供给Format-List cmdlet 来检查它:

\n\n
PS> Get-Date | Format-List\n\nDisplayHint : DateTime\nDate        : 2018-10-21 0:00:00\nDay         : 21\nDayOfWeek   : Sunday\nDayOfYear   : 294\nHour        : 18\nKind        : Local\nMillisecond : 28\nMinute      : 38\nMonth       : 10\nSecond      : 36\nTicks       : 636757439160281486\nTimeOfDay   : 18:38:36.0281486\nYear        : 2018\nDateTime    : 21 \xd0\xb6\xd0\xbe\xd0\xb2\xd1\x82\xd0\xbd\xd1\x8f 2018 \xd1\x80. 18:38:36\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后,您可以更改对象,例如。使用原始对象的属性子集创建新对象。您可以使用Select-Object cmdlet 并使用参数中所需属性的列表来执行此操作-Property

\n\n
\n

Select-Object有默认别名Select,但我建议在学习 Powershell 并与外部各方交换代码时,例如。Superuser.com 您不使用别名,为了清楚起见,仅使用 cmdlet 的全名

\n
\n\n

回答

\n\n
    \n
  • Get-Date | Select-Object -Property DayOfWeek将创建仅具有Get-DateDayOfWeek返回的对象的一个​​属性的对象

  • \n
  • Get-Date | Select-Object -ExpandProperty DayOfWeek将返回包含属性内容的字符串DayOfWeek

  • \n
\n