PowerShell - 如何获取管道变量的名称

时间:2016-02-03 10:28:14

标签: powershell

我试图用powershell弄清楚powershell中的东西。

我有这样的事情:

Get-Project -All | %{ $_.Name } 

注意:我知道%{} = ForEach{}

Get-Project -All是一个NuGet命令,它返回当前解决方案中的所有项目。

这对我有用,但我想找出所有可用的变量。我只知道$_.Name就是其中之一,正如我在网上的例子中看到的那样。

当我运行Get-Project -All时,我得到以下输出

ProjectName   Type   FullName  
-----------   ----   --------
ABC           C#     C:\SolutionDir\Category\ABC.csproj  

现在我的管道内发现了以下变量:

$_.Name = ABC
$_.ProjectName = Category/ABC
$_.Type = C#
$_.FullName = C:\SolutionDir\Category\ABC.csproj 

现在我不明白的是

  1. Get-Project -All的“表格”输出标题为ProjectName,其值为ABC。但在管道内$_.ProjectName = Category/ABC and $ _。名称= ABC`。他们不相关吗?
  2. 如果我没有看到在线提及$_.Name的示例,我将永远不知道这个变量。有没有办法获得所有可用的变量?
  3. 注意:

    Get-Project -All | %{ Get-Variable }不会返回任何上述变量。

1 个答案:

答案 0 :(得分:2)

当您使用管道时,它是通过它发送的整个对象,在本例中为Get-Project。要查看对象的所有成员,请使用Get-Member

因此,在您的情况下,您可以使用Get-Project -All | Get-Member查看要返回的对象的所有属性和方法。