Powershell Problem mit System.Collections.ArraylList?

Hallo.

Ich habe ein Problem mit einer ArrayList.

Meine Funktion funtioneirt solange durch die Funktion mehrere Dateien gefunden werden, wenn aber nur eine Datei gefunden wird bekomme ich immer einen Fehler.

Das ist der Bereich in dem die ArrayList gefüllt wird (bzw. ein Auszug):

...
[System.Collections.ArrayList]$TableData = @(Get-ChildItem $FullDateFolders -Filter $filter -File -Recurse) |
                   where-object {($_.LastAccessTime -le (get-date).AddMinutes($DelTime)) -and ($_.Fullname -like $filter1)} |
                       ForEach-Object `
                           -Begin {$i=0} `
                           -Process {
                               $i++
                               $TextBox_Output.AppendText([System.Environment]::NewLine + "# Add: " + $_.FullName)    #TODO Nur für TEST
                               write-host "Datei-Nr.: $i -- " $_.Name                               #TODO Nur für TEST
                               $_CopyFullPath     = (($_.FullName -split '\\') | Select -Last 3) -join '\'
                               $_CopyFolder     = (($_.FullName -split '\\') | Select -Last 3 | Select -SkipLast 1) -join '\'
                               $_DisplayPath  = (($_.FullName -split '\\') | Select -Last 4) -join '\'
                               $_NumberOfParts = (Select-String -path $_ -pattern 'K0007').count
                               $_LastDir      = (Split-Path $_.Directory -Leaf)
$_
...
                           

Wichtiger ist wahrscheinlich die Fehlermeldung:

Der Wert "@{Maschine=50151; Name=schleifen.dfq; Teile=0; LastWriteTime=13.07.2022 18:57:52; DisplayPath=20220713_060501\MFU\50151\schleifen.dfq; 
CopyFullPath=MFU\50151\schleifen.dfq; CopyFolder=MFU\50151; FullName=E:\Powershell_Skripts\99-Ordner_Test\Source\20220713_060501\MFU\50151\schleifen.dfq}" kann nicht 
in den Typ "System.Collections.ArrayList" konvertiert werden. Fehler: "Der Wert "@{Maschine=50151; Name=schleifen.dfq; Teile=0; LastWriteTime=13.07.2022 18:57:52; 
DisplayPath=20220713_060501\MFU\50151\schleifen.dfq; CopyFullPath=MFU\50151\schleifen.dfq; CopyFolder=MFU\50151; 
FullName=E:\Powershell_Skripts\99-Ordner_Test\Source\20220713_060501\MFU\50151\schleifen.dfq}" vom Typ "Selected.System.IO.FileInfo" kann nicht in den Typ 
"System.Collections.ArrayList" konvertiert werden."

Kann mit dieser Fehlermeldung vielleicht jemand was Anfangen und mir einen Tip für die Fehlersuche geben?

Computer, Software, Windows, IT, programmieren, GUI, PowerShell
Powershell Wieso ist meine Variable voller als gedacht?

Hi zusammen.

Ich befülle über Pipeline ein Array.

In dieser Pipeline befülle ich eine WinForms Listbox.

Nur seltsamer weise wenn ich dies tue wird mein Array um das doppelte größer.

Kann mir dies vielleicht jemand erklären?

Zum Code:

$file_list = @( Get-ChildItem -Path $source -Filter $filter -Recurse -File |
    where-object {$_.LastAccessTime -le (get-date).AddMinutes($DelTime)} |
        ForEach-Object -Begin {$i = 0} -process {
            $i++
            $TextBox_Output.AppendText([System.Environment]::NewLine + $_.FullName)     #TODO Nur für TEST
            write-host "Datei-Nr.: $i -- heißt:" $_.Name                                #TODO Nur für TEST
            $ListBox.Items.Add("Maschinen-Nr.:   $(Split-Path $_.Directory -Leaf)  //  Programm-Name:   $($_.Name)")
            write-host "$_.Fullname"
            $_.FullName   
            }
)

Wenn ich so

$file_list.count

ausgebe dann sind da 6 Items drinnen.

Wenn ich aber die die Zeile

$ListBox.Items.Add("Maschinen-Nr.:   $(Split-Path $_.Directory -Leaf)  //  Programm-Name:   $($_.Name)")

auskommentiere, dann sind wie gewünscht nur noch 3 Items im Array.

Kann mir vielleicht jemand erklären wieso mir diese Zeile ins Array schreibt, obwohl sie (meiner Meinung nach) nur in eine Listbox erstellen soll.

Bzw. hat jemand einen Verbesserungsvorschlag?

Wie immer Vielen Dank im Vorraus für die Mithilfe.

Computer, Windows, IT, programmieren, Code, Informatik, PowerShell

Meistgelesene Fragen zum Thema PowerShell