PowerShell Compare

PowerShell Compare dient zum Vergleich von zwei PowerShell-Dateien und unterstützt bei der Übernahme von Änderungen zwischen verschiedenen Paketversionen. 

Unterschiede werden übersichtlich dargestellt und können gezielt von einer Datei in die andere kopiert werden.

Typische Anwendungsfälle:

  • Zwei Versionen eines Invoke-AppDeployToolkit.ps1 abgleichen
  • Ein angepasstes Paketskript gegen die Vorlage prüfen
  • Änderungen aus einem neuen PSADT-Release in ein bestehendes Paket übernehmen

Unterstützte Dateien im Auswahldialog: *.ps1, *.psm1, *.psd1 sowie „Alle Dateien". 

Gelesen und geschrieben werden Kodierung (BOM, UTF-8, UTF-16, ANSI/Latin-1), Zeilenende (CRLF/LF) und ein eventuell vorhandener abschliessender Zeilenumbruch unverändert – Speichern verändert also nichts ausser dem Inhalt, den Sie bewusst geändert haben.

Dateiauswahl

Im oberen Bereich der Anwendung werden die Dateien ausgewählt, die miteinander verglichen werden sollen. Die Auswahl kann komfortabel per Drag & Drop erfolgen.


Im mittleren Bereich der Dateiauswahl stehen zusätzliche Funktionen zur Verfügung. Hier können beide Dateien bei Bedarf erneut geladen werden. 

Zudem besteht die Möglichkeit, über die entsprechende Schaltfläche die linke und rechte Vergleichsseite miteinander zu vertauschen, um die Gegenüberstellung der Inhalte zu erleichtern.

Werkzeugleiste

Ignorieren-Optionen (Bereich „Ignorieren:")

Diese vier Schalter steuern, was als echter Unterschied gilt. 

Was nur in einem ignorierten Merkmal abweicht, wird als „unwichtig" eingestuft, farblich schwächer markiert und nicht in den Unterschieds-Zähler aufgenommen. 

Jede Änderung löst sofort einen Neuvergleich aus.


Option

Wirkung

Leerzeichen

Unterschiede in Leerzeichen und Tabulatoren (Einrückung, Ausrichtung) gelten als unwichtig.

Gross-/Kleinschreibung

Reine Schreibweisen-Unterschiede gelten als unwichtig.

Leerzeilen

Eingefügte oder gelöschte Leerzeilen gelten als unwichtig.

Kommentare

Unterschiede in PowerShell-Kommentaren (# und <# … #>, auch mehrzeilig) gelten als unwichtig. Zeichenketten werden dabei korrekt erkannt und nicht versehentlich als Kommentar behandelt.

Ansichts-Optionen (Bereich „Ansicht:")

Bedienelement

Bedienelement

Nur Unterschiede

Blendet identische Zeilen aus. Ausgeblendete Bereiche erscheinen als Trennzeile · · ·. Im Bearbeitungsmodus nicht verfügbar.

Kontextzeilen (0 / 1 / 2 / 3 / 5 / 10)

Anzahl unveränderter Zeilen, die im Filter „Nur Unterschiede" ober- und unterhalb jedes Unterschieds sichtbar bleiben. Standard: 3. Im Bearbeitungsmodus nicht verfügbar.

Unwichtige anzeigen

Standardmässig eingeschaltet. Markiert unwichtige Unterschiede farblich und zeigt sie im Filter „Nur Unterschiede" mit an. Ausgeschaltet verschwinden sie vollständig aus der Hervorhebung und aus der Übersichtsleiste.

Aktionen (rechter Teil der Werkzeugleiste)

Symbol

Bedeutung

Rückgängig (Strg+Z)

Nimmt die letzte Zusammenführung oder Bearbeitung zurück. Eigener Verlauf mit bis zu 100 Schritten, unabhängig vom Editor-Undo. Nur aktiv, wenn es etwas rückgängig zu machen gibt.

Wiederholen (Strg+Y)

Stellt einen rückgängig gemachten Schritt wieder her.

Suchen (Strg+F)

Öffnet die Suchleiste im zuletzt benutzten Editor. Ist Text markiert (einzeilig), wird er als Suchbegriff übernommen. Die Suchleiste bietet Gross-/Kleinschreibung beachten, Nur ganzes Wort und Regulärer Ausdruck sowie Vor-/Zurück-Navigation.

Bearbeitungsmodus umschalten (Strg+E)

Schaltet beide Editoren zwischen schreibgeschützt und bearbeitbar um.

Vergleichsbericht als HTML exportieren

Erstellt einen HTML-Bericht – siehe Abschnitt 10. Erst aktiv, wenn Dateien geladen sind.

Vergleichsansicht (linker und rechter Editor)

Im oberen Bereich wird links jeweils der Dateiname und rechts die Anzahl der Zeilen angezeigt.

Darstellung

  • Zeilennummern links entsprechen den echten Zeilennummern der Originaldatei – nicht den fortlaufenden Zeilen der synchronisierten Ansicht.
  • PowerShell-Syntaxhervorhebung ist aktiv, ebenso die Anzeige von Leerzeichen und Tabulatoren, damit Einrückungsunterschiede sichtbar werden.
  • Ausgleichszeilen (dort, wo die eine Seite Zeilen hat, die der anderen fehlen) werden grau hinterlegt, damit beide Seiten zeilengenau nebeneinander stehen.
  • Inline-Hervorhebung: In geänderten Zeilen wird zusätzlich der tatsächlich abweichende Teil kräftiger markiert. Weicht mehr als rund drei Viertel der Zeile ab, wird die ganze Zeile markiert.
  • Synchrones Scrollen: Beide Editoren folgen einander vertikal und horizontal. Gesteuert wird immer von der Seite, auf der sich Maus oder Tastaturfokus befindet.
  • Farblegende siehe Statusleiste.

Kontextmenü (rechte Maustaste im Editor)

Der Rechtsklick markiert zunächst die angeklickte Zeile (ausser es besteht bereits eine mehrzeilige Markierung, die dann erhalten bleibt). 

Die Menüeinträge passen sich der angeklickten Zeile an:

Symbol

(linker Editor)

Eintrag 

(linker Editor)

Symbol 

(rechter Editor)

Eintrag 

(rechter Editor)

Bedeutung

Zeile n nach Rechts kopieren

Zeile n nach Links kopieren

Überträgt genau diese eine Zeile auf die Gegenseite. Deaktiviert, wenn an dieser Stelle keine echte Zeile steht (Ausgleichszeile).

Block nach Rechts kopieren

Block nach Links kopieren

Überträgt den kompletten Unterschieds-Block, zu dem die Zeile gehört. Nur aktiv, wenn die Zeile Teil eines Unterschieds ist.

Zeile löschen

Zeile löschen

Entfernt die Zeile auf dieser Seite. Deaktiviert bei Ausgleichszeilen.

Kopieren

Kopieren

Kopiert die aktuelle Markierung in die Zwischenablage.


Alles auswählen


Alles auswählen

Markiert den gesamten Inhalt dieses Editors.

Mittlere Navigationsleiste

Symbol

Bedeutung

Vergleichen (grosser Button oben)

Startet den Vergleich der beiden ausgewählten Dateien manuell. Bei ungespeicherten Änderungen wird vorher nachgefragt.

Vorheriger Unterschied (F7)

Springt zum vorherigen Unterschied. Am Anfang wird zum letzten Unterschied umgebrochen.

Zähler-Anzeige

Zeigt „aktueller Unterschied von Gesamtzahl".

Nächster Unterschied (F8)

Springt zum nächsten Unterschied. Am Ende wird zum ersten umgebrochen.

Aktuellen Unterschied nach Links kopieren (Strg+Alt+←)

Übernimmt den aktuell angesprungenen Block von rechts nach links.

Aktuellen Unterschied nach Rechts kopieren (Strg+Alt+→)

Übernimmt den aktuell angesprungenen Block von links nach rechts.

Alle Unterschiede nach Links kopieren

Überträgt alle Unterschiede von rechts nach links. Es erscheint vorher eine Sicherheitsabfrage mit der Anzahl der betroffenen Unterschiede.

Alle Unterschiede nach Rechts kopieren

Überträgt alle Unterschiede von links nach rechts, ebenfalls mit Sicherheitsabfrage.


Die Navigations- und Kopier-Buttons sind nur aktiv, solange Unterschiede vorhanden sind.


Hinweis: 

Mehrfachauswahl hat Vorrang: Markieren Sie im Editor mindestens zwei Zeilen und drücken Sie „Aktuellen Unterschied nach Links/Rechts kopieren", werden genau die markierten Zeilen übertragen statt des aktuellen Blocks. Die Richtung ergibt sich aus dem Button: „nach Links" nimmt die Markierung im rechten Editor, „nach Rechts" die im linken.


Beim Anspringen eines Unterschieds wird der Block in beiden Editoren markiert und im oberen Drittel des sichtbaren Bereichs positioniert; die Statusleiste nennt Nummer und Art des Unterschieds.

Übersichtsleiste

Die Leiste zeigt die gesamte Datei im Miniaturformat:

Farbige Balken markieren die Positionen aller Unterschiede (geändert / hinzugefügt / gelöscht / unwichtig).

Ein Rahmen zeigt, welcher Ausschnitt gerade im Editor sichtbar ist.

Klick springt an die entsprechende Stelle. Liegt dort ein Unterschied, wird dieser zum aktuellen Unterschied; andernfalls wird nur dorthin gescrollt.

Bearbeitungsmodus

Standardmässig sind beide Editoren schreibgeschützt – Sie arbeiten nur über die Kopier- und Löschfunktionen. Mit Strg+E oder dem Schloss-Button schalten Sie das direkte Tippen frei:

  • Beide Editoren werden bearbeitbar; die Statusleiste meldet den neuen Zustand und der Tooltip des Buttons wechselt.
  • „Nur Unterschiede" und „Kontextzeilen" werden abgeschaltet und gesperrt. Bearbeiten ist nur in der vollständigen Ansicht möglich, weil dort jede Editorzeile eindeutig einer Dateizeile entspricht. Ist der Filter aktiv, schaltet das Fenster beim Einschalten automatisch auf die Vollansicht um.
  • Nach etwa einer halben Sekunde Tippruhe wird automatisch neu verglichen. Ihre Cursorposition bleibt dabei erhalten, Ausgleichszeilen bleiben unsichtbar.
  • Jeder solche Neuvergleich setzt einen Rückgängig-Punkt.
  • Erneutes Drücken von Strg+E schaltet zurück in den Lesemodus; ausstehende Änderungen werden davor übernommen.

Statusleiste und Legende

Linke Statusleiste

Anzeige

Bedeutung

Statusmeldung

Aktuelle Rückmeldung: geladen, verglichen, kopiert, gespeichert, Bericht erzeugt usw.

Unterschiede

Anzahl der echten Unterschieds-Blöcke.

Unwichtig

Anzahl der Zeilen, die nur in einem ignorierten Merkmal abweichen.

Identisch

Anzahl der vollständig übereinstimmenden Zeilen.


Sind die Dateien inhaltlich gleich, meldet die Statusleiste das ausdrücklich – und weist gesondert darauf hin, wenn die Gleichheit nur durch die Ignorieren-Optionen zustande kommt.

Legende

Farbe

Bedeutung

Geändert

Zeile existiert auf beiden Seiten, Inhalt weicht ab.

Hinzugefügt

Zeile existiert nur in der rechten Datei.

Gelöscht

Zeile existiert nur in der linken Datei.

Unwichtig

Abweichung nur in einem ignorierten Merkmal.


Die Farben passen sich automatisch an das helle bzw. dunkle Design der Anwendung an.

HTML-Vergleichsbericht

Der Button Vergleichsbericht als HTML exportieren erzeugt einen eigenständigen HTML-Bericht:

  1. Es öffnet sich ein Speichern-Dialog; vorgeschlagen wird Compare_<links>_vs_<rechts>.html im Ordner der linken Datei.
  2. Der Bericht enthält Erstellungszeitpunkt, die verwendeten Ignorieren-Optionen, die Zusammenfassung (Unterschiede / Unwichtig / Identisch), die Farblegende und die vollständige Gegenüberstellung beider Dateien mit Originalzeilennummern und Inline-Markierung.
  3. Der Bericht wird als UTF-8 gespeichert und anschliessend automatisch im Standardbrowser geöffnet.


Der Bericht verwendet immer die hellen Farben – er ist damit auch zum Ausdrucken und Weitergeben geeignet.

Speichern und ungespeicherte Änderungen

  • Links speichern / Rechts speichern schreiben nur die jeweilige Seite zurück. 
    Beide Buttons sind nur aktiv, solange diese Seite tatsächlich vom Originalinhalt abweicht.
  • Strg+S speichert alle geänderten Seiten in einem Zug.
  • Kodierung, Zeilenendezeichen und ein vorhandener abschliessender Umbruch werden unverändert übernommen.
  • Nach dem Speichern gilt der neue Inhalt als Original: Der Änderungsstatus wird zurückgesetzt und die Zeilennummern werden neu berechnet.
  • Machen Sie alle Änderungen rückgängig, bis der Ausgangszustand wieder erreicht ist, gilt die Datei automatisch wieder als ungeändert.


Rückfrage bei ungespeicherten Änderungen erscheint vor: Aktualisieren, Tauschen, neuem Vergleich, Dateiwechsel und Schliessen des Fensters.

Antwort

Ergebnis

Ja

Betroffene Seiten werden gespeichert, danach wird die Aktion ausgeführt.

Nein

Änderungen werden verworfen, die Aktion wird ausgeführt.

Abbrechen

Die Aktion wird nicht ausgeführt, alles bleibt wie es ist.

Tastenkürzel

Taste

Funktion

F5

Dateien neu laden und vergleichen

F7

Vorheriger Unterschied

F8

Nächster Unterschied

Strg+Alt+←

Aktuellen Unterschied / Markierung nach links kopieren

Strg+Alt+→

Aktuellen Unterschied / Markierung nach rechts kopieren

Strg+Z

Rückgängig

Strg+Y

Wiederholen

Strg+S

Alle geänderten Dateien speichern

Strg+F

Suchen im aktiven Editor

Strg+E

Bearbeitungsmodus ein/aus

Typische Arbeitsabläufe

Zwei Paketskripte abgleichen

  1. Linke und rechte Datei wählen (Button oder Drag & Drop) – der Vergleich startet automatisch.
  2. Bei Bedarf Leerzeichen und Kommentare ignorieren, um sich auf inhaltliche Unterschiede zu konzentrieren.
  3. Mit F8 von Unterschied zu Unterschied springen und jeweils mit Strg+Alt+←/→ entscheiden, welche Fassung gilt.
  4. Mit Strg+S speichern.

Nur die Abweichungen sehen

  • Nur Unterschiede einschalten, Kontextzeilen auf 3 lassen.
  • Über die Übersichtsleiste rechts direkt zu den interessanten Stellen springen.

Änderungen dokumentieren

  • Vergleich durchführen.
  • Vergleichsbericht als HTML exportieren, Speicherort wählen – der Bericht öffnet sich im Browser und kann weitergegeben oder archiviert werden.

Hinweise und Grenzen

  • Der Vergleich arbeitet zeilenbasiert; sehr grosse Dateien (mehrere zehntausend Zeilen) werden in der Regel in Sekundenbruchteilen verarbeitet.
  • „Nur Unterschiede" und der Bearbeitungsmodus schliessen sich gegenseitig aus.
  • Rückgängig/Wiederholen umfasst maximal 100 Schritte und bezieht sich auf den Vergleichsstand, nicht auf einzelne Tastenanschläge.
  • Änderungen werden erst mit dem Speichern auf die Festplatte geschrieben – bis dahin arbeiten Sie ausschliesslich im Arbeitsspeicher.
  • Die Oberfläche ist mehrsprachig (MUI). Fehlt für eine Sprache ein Text, wird der englische Standardtext angezeigt.