In this question haben wir unser Problem gelöst, aber es gab einen Punkt, den ich noch nicht gelernt habe.Ermitteln des Objekttyps
Unten Kommentare im obigen Beitrag:
Mein Ziel ist es - jeder Datei Daten basierend auf Indizierung von verschachtelten Array aufrufen und letzten drei Zeilen entfernen. 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)
Aber es wirft Fehler, dass Entfernungsbereich nicht erkannt wird. Ich habe überprüft -$array[0] | gm
und removeRange-Methode war in der Tat nicht da. Einfach entfernen und entfernen. Wie gehe ich vor? - iamsmith41 11. Januar bei 22:14@ iamsmith41
Get-Content
gibt einSystem.Array
, keinSystem.Collections.ArrayList
. Ersteres hat keineRemoveRange()
Methode. Bitte bewege das Ziel nicht. Wenn eine der Antworten das in Ihrer aktuellen Frage beschriebene Problem löst, denken Sie bitte daran, diese Antwort zu akzeptieren. Wenn Sie eine neue oder folgende Frage haben: Bitte posten Sie eine neue Frage. - Ansgar Wiechers Jan 11 um 23:33Ok. Ich habe die Antwort markiert. Aber lassen Sie mich wissen, wie man es erledigt (removalrange() -Methode). Danke im Voraus. - iamsmith41 vor 2 Tagen
$array += ,[Collections.ArrayList]@(Get-Content $_.FullName)
sollte wahrscheinlich ausreichen. Wenn Sie weitere Hilfe benötigen, schreiben Sie eine neue Frage. - Ansgar Wiechers vor 2 Tagen
Wie der Objekttyp wissen, wie oben, dass ich verwenden müssen Collections.ArrayList
ist und so weiter? Wie zu wissen, dass dies ein System.Array
und nicht System.Collections.ArrayList
, etc. ist?
'($ Ausdruck) .GetType(). FullName' oder' [Type] :: GetTypeArray ((, ($ Ausdruck))) [0] .FullName'. – PetSerAl