Eu sei que isso não resolve o problema de copiar diretamente o texto que já foi impresso para o console, mas uma opção é canalizar a saída para Out-String -Width <columns>
para evitar que linhas longas sejam quebradas. Em seguida, canalize a saída para clip.exe
para copiá-lo para a área de transferência.
Se, por exemplo, eu digitar um comando inválido e receber uma mensagem de erro que desejo copiar:
PS> Blah
The term 'Blah' is not recognized as the name of a cmdlet, function, script file, or operable
program. Check the spelling of the name, or if a path was included, verify that the path is
correct and try again.
At line:1 char:1
+ Blah
+ ~~~~
+ CategoryInfo : ObjectNotFound: (Blah:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
Eu posso obter a última mensagem de erro com $Error[0]
$Error[0]| Out-String -Width 10000| clip.exe
e é isso que eu recebo quando colo no bloco de notas (note que a primeira linha não está quebrada).
The term 'Blah' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ Blah
+ ~~~~
+ CategoryInfo : ObjectNotFound: (Blah:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException