Inhalt von Verzeichnissen mit PowerShell vergleichen Windows 10

Aus Deskmodder Wiki
Version vom 5. Juli 2020, 13:30 Uhr von Moinmoin (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)


Wenn man Inhalte verschiedener Ordner miteinander vergleichen möchte, ohne sich mühsam alles durchzugucken, kann auf die PowerShell zurückgreifen. Die PowerShell bietet für das Vergleichen zwar kein eigenen Cmdlet an, allerdings lässt sich diese Aufgabe relativ einfach mit den Cmdlets Get-ChildItem und Compare-Objekt erledigen.

Man kann den Inhalt eines Ordners mit Get-ChildItem (gci) auslesen, allerdings anstatt die Ausgabe in eine Datei umzuleiten, kann man diese gleich an Compare-Object als Parameter übergeben.


Dieses Tutorial ist für die Windows 10 2004 und höher, 1909, 1903, 1809, und darunter geeignet.


News
Das Tutorial wird natürlich weiter aktualisiert. Auch du kannst mithelfen. Schick uns deine Nachricht über die Tipp-Box. Wichtig: Einige der Windows 10 Tutorials sind auch für Windows 11 gültig
Verzeichnisse vergleichen mithilfe der Windows-PowerShell-001.jpg

Im Vergleich zwischen 2 Verzeichnissen kann der Befehl wie folgt aussehen:

Die Pfade müssen von euch natürlich angepasst werden.

Compare (gci F:\Musik\) (gci C:\Users\lem0th\Desktop\Musik\)

Dieser Befehl soll herausfinden, ob bzw. welche Daten im Verzeichnis existieren. Gibt es nur eine Datei, welche nur im aktuellen Verzeichnis existiert, dann zeigt der Pfeil des Side Indikator nach Links, sind aber nur Daten im Verzeichnis "Musik" vorhanden, zeigt er nach rechts.


Verzeichnisse vergleichen mithilfe der Windows-PowerShell-002.jpg

Wenn man allerdings nur daran interessiert ist, gleichnamige Dateien zu finden, um etwa Dubletten zu finden, dann dreht man den Befehl einfach um.

Compare (gci f:\Musik) (gci c:\users\lem0th\Desktop\Musik) -IncludeEqual -ExcludeDifferent

Der Parameter -IncludeEqual ist hier nicht ausreichend, weshalb man noch den Parameter -ExculdeDifferent mit angibt.


Verzeichnisse vergleichen mithilfe der Windows-PowerShell-003.jpg

Allerdings hängt das Vergleichen der Verzeichnissen auch vom Cmdlet Get-ChildItem ab. Dieses erlaubt auch die rekursive Anzeige von Verzeichnisstrukturen als Beispiel, so dass man ganze Ordnerstrukturen miteinander vergleichen kann.

Compare (gci -r f:\Musik) (gci -r c:\users\lem0th\Desktop\Musik)

Der Befehl bewirkt einen Vergleich für die ganzen Verzeichnisbäume, wo egal ist, wo innerhalb der Verzeichnisstruktur Dateien existieren. Sollten gleichnamige Daten in F:\Musik und C:\Users\Lem0th\Desktop\Musik auftauchen, wird kein Unterschied zwischen den Beiden festgestellt, da gci nur eine lange Liste mit den Dateinamen anzeigt, ohne Pfad.


Wenn man allerdings nun nur die Verzeichnisstruktur ohne Daten vergleichen möchte, der kann folgenden Befehl dafür verwenden:

Compare (gci -r -Dir f:\Musik) (gci -r -Dir c:\Users\Lem0th\Desktop\Musik)

Der Parameter -Dir bewirkt, dass Get-ChildItem nur die Verzeichnisse anzeigen wird. Wenn eines der beiden Verzeichnisse keine Unterordner besitzt, wird Get-ChildItem einen Fehler auswerfen. Das ist allerdings bei den anderen Beispielen ebenfalls der Fall, sollten diese keine Daten enthalten.


Danke an Lemoth für das Tutorial


Fragen zu Windows 10?

Info
Du hast noch einen Tipp oder Änderung zum Tutorial? Dann schreibe uns deine Ergänzung über unsere Tipp-Box, damit unser Wiki immer aktuell bleibt. Bitte den Namen oder Link mit angeben.

Du hast Fragen oder benötigst Hilfe? Dann nutze bitte unser Forum und nicht die Tipp-Box! Auch Gäste (ohne Registrierung) können bei uns Fragen stellen oder Fragen beantworten. - Link zum Forum | Forum Windows 10

Tagesaktuelle News im Blog: - Hauptseite | Kategorie: Windows 10 | Kategorie: Apps für Windows
Neue Tutorials für Windows 10 Top 10 der Tutorials für Windows 10