PowerShell: Zwischenablage kopieren, anzeigen, leeren
Die Zwischenablage ist ein durchaus wichtiges Feature unter Windows Betriebssystemen. Man nutzt sie oft unbewusst um mit [STRG] + [C] Dateien in die Zwischenablage zu kopieren. Doch mit PowerShell können ganz einfach Daten hinein kopiert werden, das Clipboard anzeigen lassen und sogar zu löschen. Wie man das mit PowerShell realisieren kann, zeigen wir in diesem Beitrag.
Die Windows Zwischenablage mit PowerShell
Die Windows Zwischenablage kann auch mit PowerShell bedient werden. Hierfür nutzt man die Cmdlets Get-Clipboard um den aktuellen Inhalt anzeigen zu lassen, oder Set-Clipboard um Daten in die Zwischenablage kopieren zu lassen. Außerdem ist das Leeren des Clipboards möglich.
In die Zwischenablage Kopieren mit Set-Clipboard
Das Hinzufügen von Daten in die Zwischenablage ist mit dem PowerShell Befehl Set-Clipboard möglich. Das einfachste Beispiel ist das Hinzufügen von Text:
Set-Clipboard "Das ist mein Text." #Synonym Set-Clipboard -Value "Das ist mein Text."
Beide PS Befehle erzielen das gleiche Ergebnis. Der Text wird in die Zwischenablage kopiert und alle vorherigen Inhalte gelöscht. Möchte man nun einen weiteren Inhalt zum Clipboard hinzufügen, ohne dass der bestehende Inhalt gelöscht wird, so nutzt man den Parameter -Append
zum Anhängen.
Set-Clipboard "Das ist mein zweiter Text." -Append
Doch nicht nur Texte mit dem Datentyp String können in die Windows Zwischenablage kopiert werden, sondern auch Dateien und Listen von Pfade. Anstatt eine oder mehrere Dateien mit einem Rechtsklick zu kopieren, kann man das auch mit PowerShell erledigen:
Set-Clipboard -Path "C:\Users\huberj\Desktop\*.txt"
In diesem Beispiel werden alle Dateien auf meinem Desktop mit der Datei-Endung “.txt” in die Windows Zwischenablage kopiert. Hierfür wird der Parameter -Path
verwendet um anzugeben, dass es sich nicht um einen String handelt. Diese Dateien können dann an einer beliebigen Stelle eingefügt werden.
Inhalte auslesen und anzeigen mit Get-Clipboard
Das generelle Anzeigen und Auslesen der Windows Zwischenablage mit PowerShell funktioniert mit dem Befehl Get-Clipboard. Wie im Screenshot oben zu sehen ist, wird der Text, der mit Set-Clipboard gesetzt wurde, dann angezeigt.
Get-Clipboard
Das sieht noch nicht spektakulär aus. Allerdings kann man auch die Zwischenablage nach einem bestimmten Inhalt durchsuchen. Beispielsweise kann man mit Select-String
nach einem bestimmten Wort durchsuchen.
Get-Clipborad | Select-String "zweiter"
Hierbei wird nur der Inhalt ausgelesen, welcher das bestimmte Wort beinhaltet. Somit können auch nur bestimmte Teile des Clipboards angezeigt werden.
Inhalt leeren, beziehungsweise löschen
Für das Leeren der Zwischenablage mit PowerShell gibt es keinen vordefinierten Befehl. Allerdings kann man sich mit verschiedenen Methoden Abhilfe verschaffen. Dazu stehen die Befehle oben zur Verfügung, oder man greift auf andere Windows Mittel zurück, welche sich trotzdem in PowerShell ausführen lassen.
Zum einen kann man der Windows Zwischenablage mit Set-Clipboard einen leeren Wert zuweisen. Hierfür wird die Variable $NULL verwendet.
Set-Clipboard $null
Aber nicht nur Powershell Werkzeuge können zum Leeren verwendet werden, sondern auch Methoden mit .NET. Hierfür muss allerdings erste der AssemblyName System.Windows.Forms hinzugefügt werden. Hier gibt es dann eine fertige Methode um die Zwischenablage löschen zu lassen.
Add-Type -AssemblyName System.Windows.Forms [System.Windows.Forms.Clipboard]::Clear()
Doch auch Windows hat in den Bordmitteln die clip.exe, welche die Aufgaben mit der Zwischenablage übernimmt. Diese ausführbare EXE Datei geben wir ebenfalls den Wert $NULL zum Verarbeiten, welcher dann geschrieben wird. Somit ist das Clipboard geleert und keine Inhalte mehr vorhanden.
$null | clip.exe
Natürlich wird hier das “Pipe” benötigt, wie man es aus PowerShell auch gewöhnt ist.