Infelizmente, parece que clip
anexou a nova linha. Então, vamos fazer da maneira .NET!
Aqui está uma função que pega stdin e coloca na área de transferência:
function Out-ClipboardText
{
param(
[Parameter(
Position=0,
Mandatory=$true,
ValueFromPipeline=$true)
]
[String]$text
)
process
{
powershell -sta -noprofile -command "add-type -an system.windows.forms; [System.Windows.Forms.Clipboard]::SetText('$text')"
}
}
Adaptado de link e < href="https://stackoverflow.com/a/887406/1030702"> link
Use assim:
$hash | Out-ClipboardText
Ele usa a função de área de transferência do .NET para definir o texto. Infelizmente, também é um pouco lento e complicado porque precisa iniciar um novo processo do PowerShell no modo STA, conforme necessário para Clipboard
( source ).