Lorsque vous écrivez du code en PowerShell, la dernière chose à laquelle vous pourriez penser est le presse-papiers Windows. Nous connaissons tous probablement les fameux raccourcis clavier Ctrl-C et Ctrl-V pour copier et coller à partir du presse-papiers, mais cela se fait généralement via l’interface graphique. Dans nos scripts PowerShell, ce n’est pas très utile. Cependant, saviez-vous qu’il existe une fonction de copie vers le presse-papiers en PowerShell ?
Dans cet article, je vais vous expliquer comment nous avions l’habitude d’obtenir la fonctionnalité de copier-coller en PowerShell, puis je vais vous présenter les cmdlets que PowerShell fournit à partir de la version 5.
Avant PowerShell v5, la seule façon de copier vers le presse-papiers était d’utiliser l’application clip.exe.
Ancienne école clip.exe
Cette application existe depuis longtemps et fonctionne simplement. En envoyant du texte à clip.exe, vous pouviez copier du texte dans le presse-papiers. Cela fonctionnait, mais c’était toujours ennuyeux car il ajoutait un retour à la ligne après chaque entrée.

Non seulement cela, mais nous n’avions aucun moyen facile de récupérer des informations à partir du presse-papiers. Nous étions obligés de coller manuellement le contenu une fois qu’il était dans le presse-papiers. Avec les commandes natives du presse-papiers, ce n’est plus le cas !
Nous disposons maintenant de deux cmdlets qui résolvent ce problème de manière bien meilleure : Get-Clipboard
et Set-Clipboard
.
Commande PowerShell Set-Clipboard
Set-Clipboard
remplace clip.exe mais fonctionne exactement de la même manière. Maintenant, au lieu de rediriger la sortie vers clip, vous pouvez utiliser Set-Clipboard
. Si vous le faites, vous remarquerez que le retour chariot final disparaît lorsque vous collez le contenu quelque part.
Le presse-papiers contient maintenant uniquement la chaîne Hello.
Une autre fonctionnalité utile avec Set-Clipboard
est le paramètre Append
. Traditionnellement, le presse-papiers ne pouvait stocker qu’un seul élément. Maintenant, en utilisant le paramètre Append
avec Set-Clipboard
, vous pouvez ajouter un nombre illimité d’éléments sans supprimer les précédents.
Paramètres de Get-Clipboard
Même si vous n’utilisez pas Set-Clipboard
pour copier du contenu dans le presse-papiers, vous pouvez toujours utiliser Get-Clipboard
pour comprendre quelques types différents autres que les simples chaînes de caractères. Par exemple, si vous avez copié une liste de fichiers depuis l’Explorateur de fichiers et que vous souhaitez obtenir cette liste dans votre console PowerShell, il vous suffit d’utiliser le paramètre Format
et la valeur FileDropList
sur Get-Clipboard
.
Vous pouvez voir qu’il comprend que le type de données dans le presse-papiers est une liste de fichiers. Vous pouvez également faire la même chose avec des images et d’autres entités.
Copiez une image à partir d’une autre application et utilisez la commande -Format Image
pour récupérer différentes propriétés de l’image avec la commande Get-Clipboard
.
Manipulation du presse-papiers dans PowerShell Core
Malheureusement, les commandes Get-Clipboard
et Set-Clipboard
ne sont pas disponibles dans PowerShell Core (v6+), mais vous pouvez toujours les utiliser en utilisant le module WindowsCompatibility. Le module WindowsCompatibility vous permet d’utiliser des cmdlets de Windows PowerShell dans PowerShell Core.
Une fois que vous avez installé le module WindowsCompatibility, exécutez la commande Invoke-WinCommand
et enveloppez vos références à Get-Clipboard
et Set-Clipboard
à l’intérieur.
Vous constaterez que vous pouvez lire et écrire dans le presse-papiers comme vous le feriez avec Windows PowerShell.
Résumé
De nos jours, vous pouvez faire beaucoup plus avec le presse-papiers en PowerShell. La copie vers le presse-papiers en PowerShell est rendue possible grâce aux cmdlets Get-Clipboard
et Set-Clipboard
. Ces cmdlets vous permettent d’utiliser PowerShell pour copier vers le presse-papiers et coller intelligemment à partir du presse-papiers également.
Pour obtenir une description complète des cmdlets, consultez l’aide détaillée:
Cela vous donnera tous les différents paramètres que vous pouvez essayer.
Source:
https://adamtheautomator.com/powershell-copy-to-clipboard/