Beim Schreiben von Code in PowerShell ist das Letzte, woran Sie vielleicht denken,
die Windows-Zwischenablage. Wir kennen alle wahrscheinlich die berüchtigten Tastenkombinationen Ctrl-C und Ctrl-V zum Kopieren und Einfügen aus der Zwischenablage, aber dies wird normalerweise über die GUI gemacht. In unseren PowerShell-Skripten ist dies nicht besonders nützlich. Wussten Sie jedoch, dass es eine Funktion zum Kopieren in die Zwischenablage in PowerShell gibt?
In diesem Artikel werde ich erläutern, wie wir früher die Kopier- und Einfügefunktion in PowerShell genutzt haben, und dann die Cmdlets vorstellen, die PowerShell ab Version 5 bietet.
Vor PowerShell v5 war der einzige Weg zum Kopieren in die Zwischenablage die Verwendung der clip.exe Anwendung.
Alte Schule clip.exe
Diese Anwendung existiert schon seit langer Zeit und hat einfach funktioniert. Indem man Text an clip.exe weiterleitete, konnte man Text in die Zwischenablage kopieren. Das hat funktioniert, war aber immer ärgerlich, wenn es nach jedem Eintrag einen Zeilenumbruch hinzufügte.

Nicht nur das, wir hatten auch keine einfache Möglichkeit, Informationen aus der Zwischenablage zu ziehen. Wir waren gezwungen, den Inhalt manuell einzufügen, sobald er in der Zwischenablage war. Mit den nativen Zwischenablagebefehlen ist das vorbei!
Wir haben jetzt zwei Cmdlets, die dieses Problem viel besser lösen; Get-Clipboard
und Set-Clipboard
.
Set-Clipboard Powershell-Befehl
Set-Clipboard
ersetzt clip.exe, verhält sich jedoch genauso. Anstatt die Ausgabe an clip zu leiten, können Sie jetzt Set-Clipboard
verwenden. Wenn Sie dies tun, werden Sie feststellen, dass das abschließende Wagenrücklaufzeichen verschwunden ist, wenn Sie den Inhalt irgendwo einfügen.
Die Zwischenablage enthält nun nur noch den String Hello.
Eine weitere nützliche Funktion von Set-Clipboard
ist der Parameter Append
. Traditionell konnte die Zwischenablage nur einen Eintrag speichern. Mit dem Parameter Append
von Set-Clipboard
können Sie nun eine unbegrenzte Anzahl von Einträgen hinzufügen, ohne die vorherigen zu entfernen.
Parameter für Get-Clipboard
Selbst wenn Sie Set-Clipboard
nicht verwenden, um Inhalte in die Zwischenablage zu kopieren, können Sie dennoch Get-Clipboard
verwenden, um verschiedene Arten von Inhalten zu erkennen, die über einfache Zeichenketten hinausgehen. Wenn Sie beispielsweise eine Liste von Dateien aus dem Datei-Explorer kopiert haben und diese Liste in Ihre PowerShell-Konsole übertragen möchten, verwenden Sie einfach den Parameter Format
und den Wert FileDropList
für Get-Clipboard
.
Sie können sehen, dass er den Typ der Daten in der Zwischenablage als Liste von Dateien erkennt. Dies funktioniert auch mit Bildern und anderen Elementen.
Kopieren Sie ein Bild aus einer anderen Anwendung und verwenden Sie -Format Bild
, um verschiedene Eigenschaften über das Bild abzurufen.
Zwischenablage-Manipulation in PowerShell Core
Leider sind die Befehle Get-Clipboard
und Set-Clipboard
in PowerShell Core (v6+) nicht verfügbar, aber Sie können sie dennoch mithilfe des Moduls WindowsCompatibility verwenden. Das WindowsCompatibility-Modul ermöglicht es Ihnen, Windows PowerShell-Cmdlets in PowerShell Core zu verwenden.
Wenn Sie das WindowsCompatibility-Modul installiert haben, führen Sie Invoke-WinCommand
aus und umgeben Sie Ihre Verweise auf Get-Clipboard
und Set-Clipboard
damit.
Sie werden feststellen, dass Sie die Zwischenablage genauso lesen und schreiben können wie mit Windows PowerShell.
Zusammenfassung
Mit der Zwischenablage in PowerShell können Sie heutzutage so viel mehr tun. Das Kopieren in die Zwischenablage mit PowerShell wird durch die Verwendung von Get-Clipboard
und Set-Clipboard
ermöglicht. Diese Cmdlets ermöglichen es Ihnen, mit PowerShell in die Zwischenablage zu kopieren und intelligent aus der Zwischenablage einzufügen.
Für eine vollständige Aufschlüsselung der Cmdlets schauen Sie sich die detaillierte Hilfe an:
Dort finden Sie alle verschiedenen Parameter, die Sie ausprobieren können.
Source:
https://adamtheautomator.com/powershell-copy-to-clipboard/