Ao escrever código em PowerShell, a última coisa em que você pode pensar é
na área de transferência do Windows. Provavelmente todos nós conhecemos os infames atalhos de teclado Ctrl-C e Ctrl-V para copiar e colar da área de transferência, mas isso é feito normalmente via GUI. Em nossos scripts PowerShell, isso não é muito útil. No entanto, você sabia que existe uma função PowerShell para copiar para a área de transferência?
Neste artigo, vou mostrar como costumávamos obter a funcionalidade de copiar e colar no PowerShell e, em seguida, apresentarei os cmdlets que o PowerShell oferece 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.
Antigo clip.exe
Este aplicativo existe há muito tempo e simplesmente funcionava. Ao canalizar texto para o clip.exe, você podia copiar texto para a área de transferência. Isso funcionava, mas sempre era irritante quando ele adicionava uma quebra de linha após cada entrada.

Não só isso, mas não tínhamos uma maneira fácil de extrair informações da área de transferência. Fomos forçados a colar manualmente o conteúdo uma vez que estavam na área de transferência. Com os comandos nativos da área de transferência, isso não existe mais!
Agora temos dois cmdlets que resolvem esse problema de maneira muito melhor; Get-Clipboard
e Set-Clipboard
.
Comando Set-Clipboard do Powershell
Set-Clipboard
substitui clip.exe, mas se comporta exatamente da mesma forma. Agora, em vez de encaminhar a saída para clip, você pode usar Set-Clipboard
. Se fizer isso, notará que o retorno de carro no final desaparece quando você cola o conteúdo em algum lugar.
A área de transferência agora contém apenas a sequência Hello.
Outra característica útil do Set-Clipboard
é o parâmetro Append
. Tradicionalmente, a área de transferência só foi capaz de 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 se você não usar Set-Clipboard
para copiar conteúdo para a área de transferência, ainda poderá 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 deseja obter essa lista em seu console do PowerShell, basta usar o parâmetro Format
e o valor FileDropList
em 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 cmdlets do Windows PowerShell dentro do PowerShell Core.
Depois de instalar o módulo WindowsCompatibility, execute Invoke-WinCommand
e envolva suas referências de 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 tornada possível 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 inteligentemente a partir dela também.
Para uma análise detalhada dos cmdlets, confira a ajuda detalhada:
Isso fornecerá todos os diversos parâmetros que você pode experimentar.
Source:
https://adamtheautomator.com/powershell-copy-to-clipboard/