Quando si scrive codice in PowerShell l’ultima cosa a cui si potrebbe pensare è
la clipboard di Windows. Probabilmente tutti noi conosciamo i famigerati tasti di scelta rapida Ctrl-C e Ctrl-V per copiare e incollare dalla clipboard, ma di solito questo viene fatto tramite la GUI. Nei nostri script PowerShell, non è molto utile. Tuttavia, sapevate che esiste una funzione PowerShell per copiare nella clipboard?
In questo articolo, spiegherò come siamo riusciti ad ottenere la funzionalità di copia e incolla in PowerShell e poi vi presenterò i cmdlet che PowerShell fornisce a partire dalla versione 5.
Prima di PowerShell v5, l’unico modo per copiare nella clipboard era utilizzando l’applicazione clip.exe.
Clip.exe vecchia scuola
Questa applicazione esiste da molto tempo e funziona semplicemente. Inviando testo a clip.exe, si poteva copiare il testo nella clipboard. Questo funzionava, ma era sempre fastidioso quando aggiungeva un ritorno a capo dopo ogni voce.

Non solo, ma non avevamo un modo semplice per estrarre informazioni dalla clipboard. Eravamo costretti a incollare manualmente i contenuti una volta che erano nella clipboard. Con i comandi nativi della clipboard, questo non è più un problema!
Ora abbiamo due cmdlet che risolvono molto meglio questo problema; Get-Clipboard
e Set-Clipboard
.
Comando Powershell Set-Clipboard
Set-Clipboard
sostituisce clip.exe ma si comporta allo stesso modo. Ora, invece di inviare l’output a clip, puoi utilizzare Set-Clipboard
. Se lo fai, noterai che il ritorno a capo finale viene eliminato quando incolli il contenuto da qualche parte.
La clipboard ora contiene solo la stringa Hello.
Un’altra funzionalità utile di Set-Clipboard
è il parametro Append
. Tradizionalmente, la clipboard poteva contenere solo un elemento. Ora, utilizzando il parametro Append
con Set-Clipboard
, puoi aggiungere un numero illimitato di elementi senza rimuovere quelli precedenti.
Parametri di Get-Clipboard
Anche se non utilizzi Set-Clipboard
per copiare contenuti negli appunti, puoi comunque utilizzare Get-Clipboard
per comprendere alcuni tipi diversi dalle semplici stringhe. Ad esempio, se hai copiato una lista di file da Esplora file e desideri ottenere questa lista nella console di PowerShell, utilizza semplicemente il parametro Format
e il valore FileDropList
su Get-Clipboard
.
Puoi vedere che comprende il tipo di dati nella clipboard come una lista di file. Inoltre, puoi fare lo stesso con immagini e altre entità.
Copia un’immagine da un’altra applicazione e utilizza il comando -Format Image
per recuperare diverse proprietà dell’immagine utilizzando Get-Clipboard
.
Manipolazione degli Appunti in PowerShell Core
Purtroppo, i comandi Get-Clipboard
e Set-Clipboard
non sono disponibili in PowerShell Core (v6+) ma è comunque possibile utilizzarli usando il modulo WindowsCompatibility. Il modulo WindowsCompatibility permette di utilizzare i cmdlet di Windows PowerShell all’interno di PowerShell Core.
Una volta installato il modulo WindowsCompatibility, esegui il comando Invoke-WinCommand
e racchiudi all’interno i riferimenti a Get-Clipboard
e Set-Clipboard
.
Noterai che puoi leggere e scrivere negli appunti come faresti con Windows PowerShell.
Riepilogo
Oggi puoi fare molto di più con gli appunti in PowerShell. La copia negli appunti di PowerShell è resa possibile grazie ai cmdlet Get-Clipboard
e Set-Clipboard
. Questi cmdlet ti consentono di utilizzare PowerShell per copiare negli appunti e per incollare in modo intelligente dagli appunti.
Per una panoramica completa dei cmdlet, consulta l’aiuto dettagliato:
Questo ti fornirà tutti i vari parametri che puoi provare.
Source:
https://adamtheautomator.com/powershell-copy-to-clipboard/