Ao escrever código em PowerShell, a última coisa em que você provavelmente pensa é a área de transferência do Windows. Todos nós provavelmente conhecemos os infames atalhos de teclado Ctrl-C e Ctrl-V para copiar e colar da área de transferência, mas isso é tipicamente feito através da interface gráfica. Em nossos scripts do PowerShell, isso não é muito útil. No entanto, você sabia que existe uma função de cópia para a área de transferência no PowerShell?
Neste artigo, vou explicar como costumávamos obter funcionalidade de cópia e colagem no PowerShell e, em seguida, apresentar os cmdlets que o PowerShell fornece a partir da versão 5.
Antes do PowerShell v5, a única maneira de copiar para a área de transferência era usando o aplicativo clip.exe.
Clip.exe da velha guarda
Esse aplicativo existe há muito tempo e simplesmente funciona. Ao redirecionar o texto para o clip.exe, você poderia copiar o texto para a área de transferência. Isso funcionava, mas era sempre irritante quando ele adicionava uma quebra de linha após cada entrada.

Além disso, não tínhamos uma maneira fácil de extrair informações da área de transferência. Éramos obrigados a colar manualmente o conteúdo depois que ele estava na área de transferência. Com os comandos nativos da área de transferência, isso não é mais um problema!
Agora temos dois cmdlets que resolvem esse problema de maneira muito melhor: Get-Clipboard
e Set-Clipboard
.
Comando Powershell Set-Clipboard
Set-Clipboard
substitui o clip.exe, mas se comporta exatamente da mesma maneira. Agora, em vez de encaminhar a saída para clip, você pode usar Set-Clipboard
. Se fizer isso, você notará que o retorno de carro final desapareceu quando colar o conteúdo em algum lugar.
A área de transferência agora contém apenas a string Hello.
Outro recurso útil com Set-Clipboard
é o parâmetro Append
. Tradicionalmente, a área de transferência só podia armazenar um item. Agora, usando o parâmetro Append
com Set-Clipboard
, você pode adicionar um número ilimitado de itens sem remover os anteriores.
Parâmetros do Get-Clipboard
Mesmo que você não use Set-Clipboard
para copiar conteúdos para a área de transferência, ainda pode usar Get-Clipboard
para entender alguns tipos diferentes além de simples strings. Por exemplo, se você copiou uma lista de arquivos do Explorador de Arquivos e gostaria de obter essa lista no console do PowerShell, basta usar o parâmetro Format
e o valor �FileDropList
no Get-Clipboard
.
Você pode ver que ele entende o tipo de dados na área de transferência como uma lista de arquivos. Além disso, você pode fazer o mesmo com imagens e outras entidades.
Copie uma imagem de outra aplicação e use o comando -Format Image
para Get-Clipboard
para recuperar várias propriedades sobre a imagem.
Manipulação da Área de Transferência no PowerShell Core
Infelizmente, os comandos Get-Clipboard
e Set-Clipboard
não estão disponíveis no PowerShell Core (v6+), mas você ainda pode usá-los usando o módulo WindowsCompatibility. O módulo WindowsCompatibility permite que você use os cmdlets do Windows PowerShell dentro do PowerShell Core.
Depois de instalar o módulo WindowsCompatibility, execute Invoke-WinCommand
e envolva suas referências Get-Clipboard
e Set-Clipboard
dentro dele.
Você verá que pode ler e escrever na área de transferência da mesma forma que faria com o Windows PowerShell.
Resumo
Você pode fazer muito mais com a área de transferência no PowerShell hoje em dia. A cópia para a área de transferência do PowerShell foi possibilitada usando os cmdlets Get-Clipboard
e Set-Clipboard
. Esses cmdlets permitem que você use o PowerShell para copiar para a área de transferência e colar de forma inteligente também.
Para uma análise completa dos cmdlets, confira a ajuda detalhada:
Isso lhe dará todos os vários parâmetros que você pode experimentar.
Source:
https://adamtheautomator.com/powershell-copy-to-clipboard/