1 Pluspunkt 0 Minuspunkte
Ich möchte alle Dateien in einem Ordner einlesen und eine Liste daraus erstellen. Die Liste soll aber nicht nur den Dateinamen enthalten sondern ein von mir definiertes Objekt das die Datei beschreibt wo dann jedes Attribut in einer eigenen Spalte steht. Wie kann ich das in Powershell machen?
von  

1 Antwort

0 Pluspunkte 0 Minuspunkte

Dieses Skript erstellt eine Klasse namens FileDescription, die den Namen der Datei, ihre Größe und das Datum der letzten Änderung enthält. Dann liest es alle Dateien im angegebenen Ordner ein, erstellt für jede Datei ein entsprechendes FileDescription Objekt und fügt es der Liste $fileList hinzu. Am Ende wird die Liste der Dateiobjekte ausgegeben.

# Definiere eine Klasse, um die Dateien zu beschreiben
class FileDescription {
    [string]$Name
    [long]$Size
    [DateTime]$LastModified

    FileDescription([string]$name, [long]$size, [DateTime]$lastModified) {
        $this.Name = $name
        $this.Size = $size
        $this.LastModified = $lastModified
    }
}

# Pfad zum Ordner, den du überprüfen möchtest
$folderPath = "C:\Pfad\Zum\Ordner"

# Array für die Liste der Dateiobjekte erstellen
$fileList = @()

# Alle Dateien im Ordner einlesen
Get-ChildItem -Path $folderPath | ForEach-Object {
    # Dateiobjekt erstellen und zur Liste hinzufügen
    $file = [FileDescription]::new($_.Name, $_.Length, $_.LastWriteTime)
    $fileList += $file
}

# Liste der Dateiobjekte ausgeben
$fileList

# Die Ausgabe wäre in etwa so
Name                          Size LastModified       
----                          ---- ------------       
a.txt                         4782206 07.05.2024 23:44:01
b.txt                         4794758 07.05.2024 23:44:01
c.txt                         6730214 07.05.2024 23:44:01
...
von (532 Punkte)