Powershell 创建根据管道中的名称命名的新对象

Powershell 创建根据管道中的名称命名的新对象,powershell,Powershell,大家好,我是powershell专家 我刚开始上这个网站,所以我希望在回答问题的同时也能问一些能为Stackoverflow社区这一令人敬畏的知识库做出贡献的问题 我的Powershell技能每天都在增长,但我很难理解为什么它不能像演示的那样工作 我想从pscustomobject的noteproperty中保存的名称列表中创建一组名为的新对象 PS G:\Team Drives\Projects\AWS-PowerShell\AWS_ADS_DataMiner> $ADSObje

大家好,我是powershell专家

我刚开始上这个网站,所以我希望在回答问题的同时也能问一些能为Stackoverflow社区这一令人敬畏的知识库做出贡献的问题

我的Powershell技能每天都在增长,但我很难理解为什么它不能像演示的那样工作

我想从pscustomobject的noteproperty中保存的名称列表中创建一组名为的新对象

    PS G:\Team Drives\Projects\AWS-PowerShell\AWS_ADS_DataMiner> $ADSObjectNames

    ObjectName                     CSV                                            
    ----------                     ---                                            
    Process                        580501780015_Process.csv                       
    Applications                   580501780015_Applications.csv                  
    ApplicationResourceAssociation 580501780015_ApplicationResourceAssociation.csv
    NetworkInterface               580501780015_NetworkInterface.csv              
    SystemPerformance              580501780015_SystemPerformance.csv             
    Tags                           580501780015_Tags.csv                          
    Connection                     580501780015_Connection.csv                    
    Server                         580501780015_Server.csv                        



    PS G:\Team Drives\Projects\AWS-PowerShell\AWS_ADS_DataMiner> $ADSObjectNames | Select-Object -Property ObjectName | ForEach-Object {$_.objectname = New-Object -TypeName pscustomobject}


    PS G:\Team Drives\Projects\AWS-PowerShell\AWS_ADS_DataMiner> Get-Variable | Where-Object {$_.Name -eq 'Process'}

    PS G:\Team Drives\Projects\AWS-PowerShell\AWS_ADS_DataMiner> Get-Variable | Where-Object {$_.Name -eq 'Server'}

    PS G:\Team Drives\Projects\AWS-PowerShell\AWS_ADS_DataMiner>
$ADSObjectNames细分如下:

    PS G:\Team Drives\Projects\AWS-PowerShell\AWS_ADS_DataMiner> $ADSObjectNames | gm


       TypeName: System.Management.Automation.PSCustomObject

    Name        MemberType   Definition                         
    ----        ----------   ----------                         
    Equals      Method       bool Equals(System.Object obj)     
    GetHashCode Method       int GetHashCode()                  
    GetType     Method       type GetType()                     
    ToString    Method       string ToString()                  
    CSV         NoteProperty string CSV=580501780015_Process.csv
    ObjectName  NoteProperty string ObjectName=Process          



    PS G:\Team Drives\Projects\AWS-PowerShell\AWS_ADS_DataMiner> 
如能从您的经验和知识中获得任何见解,我们将不胜感激

谢谢你的朋友们

斯图尔特
  • 听起来你好像很困惑,很困惑<代码>新对象不会为您创建变量;它的语法更像是
    $newVar=newobject…

  • 两个cmdlet都需要更多参数才能真正有效<代码>新对象仅使用
    -TypeName
    创建一个空对象<仅使用
    -Name
    创建一个空变量。
    -ArgumentList
    -Value
    分别允许您在其中存储内容

  • 不建议动态创建变量-请参阅和Tomalak的有用评论。在同一页上回答演示如何在哈希表中存储数据


  • 请详细说明您想做什么。示例中的
    Get Variable
    语句是关于什么的?它们只是用来证明没有创建新对象。请注意,他们正在搜索where object$\ name等于我在$ADSObjectNames中演示的where值的位置。代码是一个完整的终端副本,它给出了一个出乎意料的结果(我完全出乎意料)。