Wie listet man mit einem PowerShell-Script und Input-Parameter Path alle direkten Unterverzeichnisse mit Größe und Datei-Anzahl auf?

Antwort

Du kannst mit folgendem PowerShell-Skript alle direkten Unterverzeichnisse eines angegebenen Pfads auflisten und für jedes die Gesamtgröße sowie die Anzahl der enthaltenen Dateien anzeigen lassen. Das Skript nimmt den Pfad als Parameter entgegen: ```powershell param( [Parameter(Mandatory=$true)] [string]$Path ) # Hole alle direkten Unterverzeichnisse $dirs = Get-ChildItem -Path $Path -Directory foreach ($dir in $dirs) { # Hole alle Dateien (rekursiv) im Unterverzeichnis $files = Get-ChildItem -Path $dir.FullName -File -Recurse -ErrorAction SilentlyContinue # Berechne die Gesamtgröße $size = ($files | Measure-Object -Property Length -Sum).Sum # Anzahl der Dateien $count = $files.Count # Ausgabe [PSCustomObject]@{ Directory = $dir.FullName SizeMB = [math]::Round($size / 1MB, 2) FileCount = $count } } ``` **Anwendung:** Speichere das Skript z.B. als `Get-SubdirStats.ps1` und rufe es so auf: ```powershell .\Get-SubdirStats.ps1 -Path "C:\Dein\Ordner" ``` **Erklärung:** - Das Skript nimmt einen Pfad als Parameter. - Es listet alle direkten Unterverzeichnisse auf. - Für jedes Unterverzeichnis werden rekursiv alle Dateien gezählt und deren Größe summiert. - Die Ergebnisse werden als Tabelle ausgegeben (Verzeichnis, Größe in MB, Dateianzahl). **Hinweis:** Für sehr große Verzeichnisbäume kann das Skript etwas Zeit benötigen.

KI fragen

Verwandte Fragen

Wie sieht ein PowerShell-Script aus, das jede Sekunde eine Internetseite aufruft?

Ein einfaches PowerShell-Skript, das jede Sekunde eine Internetseite aufruft, könnte so aussehen: ```powershell while ($true) { Invoke-WebRequest -Uri "https://www.beispielseite.de"... [mehr]

Wie ruft man in PowerShell eine Funktion mit Übergabestring auf?

In PowerShell rufst du eine Funktion mit einem Übergabestring wie folgt auf: Angenommen, du hast eine Funktion definiert: ```powershell function SagHallo($name) { Write-Host "Hallo, $n... [mehr]

Wie definiere und benutze ich eine PowerShell-Funktion mit Parameter und Rückgabewert?

Eine Funktion in PowerShell, die mit einem Parameter aufgerufen wird und deren Rückgabewert in eine Variable geschrieben wird, sieht zum Beispiel so aus: ```powershell function Addiere-Zwei {... [mehr]

Wie ruft man in PowerShell eine Funktion auf?

In PowerShell rufst du eine Funktion auf, indem du einfach ihren Namen verwendest, gefolgt von eventuellen Parametern. Beispiel: ```powershell function SagHallo { Write-Host "Hallo Welt!&quo... [mehr]

Wie entfernt man in einer Variablen alles nach NewLine per PowerShell?

Um in PowerShell alles nach einem Newline-Zeichen (`"`n"`) aus einer Variable zu entfernen, kannst du die Methode `-split` verwenden und nur das erste Element behalten. Beispiel: ```powersh... [mehr]

Wie kann man mit PowerShell das aktuelle Datum in Unixzeit (Unixtime) umwandeln?

Ja, das ist mit PowerShell möglich. Du kannst das aktuelle Datum in einen Unix-Timestamp (Sekunden seit dem 1.1.1970, 00:00:00 UTC) wie folgt umwandeln: ```powershell # Aktuelles Datum und Uhrze... [mehr]

Kann man in PowerShell Subfunktionen verwenden?

Ja, in PowerShell kannst du sogenannte "Subfunktionen" einbauen. In PowerShell werden diese als "verschachtelte Funktionen" oder "lokale Funktionen" bezeichnet. Du kannst... [mehr]

Wie kann man per PowerShell eine Excel-Spalte anhand des Zellinhaltes identifizieren?

Um in PowerShell eine Excel-Spalte anhand des Zellinhalts zu identifizieren, kannst du die COM-Schnittstelle von Excel verwenden. Das folgende Beispiel zeigt, wie du eine Excel-Datei öffnest, ein... [mehr]

Wie kann man in PowerShell Spaltennamen einer Excel-Datei als Variablen für die Weiterverarbeitung verwenden?

Um in PowerShell die mit Titeln versehenen Spalten einer Excel-Datei als Variablen zu verwenden, kannst du das Modul **ImportExcel** nutzen. Damit kannst du Excel-Dateien direkt einlesen und die Spalt... [mehr]

Kann man mit C# PowerShell-Kommandos ausführen?

Ja, mit C# kannst du PowerShell-Kommandos ausführen. Das geht am einfachsten mit der Klasse `System.Management.Automation.PowerShell`, die Teil des .NET Frameworks bzw. des NuGet-Pakets [Microsof... [mehr]