gpt4 book ai didi

powershell - 确定对象类型

转载 作者:行者123 更新时间:2023-12-04 16:58:29 26 4
gpt4 key购买 nike

this question我们解决了我们的问题,但有一点我还没有学到。

在上述帖子中的以下评论:

My goal is - To call each file data based on indexing from nested array and remove last three lines. So- $array = New-Object Sytem.Collections.Arraylist; Get-ChildItem C:\...\test | ForEach-Object { $array += ,@(Get-Content $_.FullName) }; $array[0].removerange($array[0].count-2,2) But it throws error that removerange is not recognised. I checked - $array[0] | gm and removerange method was indeed not there. Just Remove and Removeat. How to proceed for this? - iamsmith41 Jan 11 at 22:14

@iamsmith41 Get-Content returns a System.Array, not a System.Collections.ArrayList. The former doesn't have a RemoveRange() method. Also, please don't move the target. If one of the answers resolves the problem described in your current question: please consider accepting that answer. If you have a new or followup question: please post a new question. - Ansgar Wiechers Jan 11 at 23:33

Ok. I marked the answer. But just let me know how to get it done( removerange() method ). Thanks in advance. - iamsmith41 2 days ago

$array += ,[Collections.ArrayList]@(Get-Content $_.FullName) should probably suffice. If you need further help please post a new question. - Ansgar Wiechers 2 days ago



如何知道我必须使用的上述对象类型是 Collections.ArrayList等等?怎么知道这是 System.Array而不是 System.Collections.ArrayList , 等等。?

最佳答案

您可以通过对象的 GetType() 来确定对象的类型。方法:

PS C:\> (Get-Item '.').GetType()

IsPublic IsSerial 名称 BaseType
——————————————————
True True DirectoryInfo System.IO.FileSystemInfo

PS C:\> (Get-Item '.').GetType().FullName
System.IO.DirectoryInfo

或使用 Get-Member 小命令:

PS C:\> Get-Item '.' |获取成员(member)

类型名称:System.IO.DirectoryInfo

名称 MemberType 定义
---- ---------- ----------
Mode CodeProperty System.String Mode{get=Mode;}
创建方法 void Create(), void Create(System.Securi...
CreateObjRef 方法 System.Runtime.Remoting.ObjRef CreateObj...
CreateSubdirectory 方法 System.IO.DirectoryInfo CreateSubdirecto...
...

前者提供关于一个对象的元信息,比如它的名称、基本类型、它的组装来源等(将 GetType() 的输出通过管道输入 Format-List * 以获得完整列表)。

后者主要用于获取有关对象成员(属性和方法)的信息(如果使用参数 -Static 则为类的静态成员)。请注意,如果您需要有关集合对象成员的信息,则必须使用 Get-Member -InputObject $col而只是 $col | Get-Member ,因为使用管道会展开集合,并且您将获得集合元素的成员,而不是集合对象本身的成员。

一旦你知道一个类,你通常会在 documentation 中查找更多信息。 ,例如通过将类或成员名称输入您的首选搜索引擎。

关于powershell - 确定对象类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41658770/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com