Como enviar um rich text para a área de transferência a partir da linha de comando?

3

Como posso enviar o html para a área de transferência como rich text de um script? Meu objetivo final é criar um script para que eu possa colar o conteúdo de um arquivo de origem em um email, mas quero uma resposta geral para colar em qualquer programa que aceite rich text.

Exemplo de uso para colar no email:

  1. Abra o arquivo de origem no vim
  2. Use o comando :TOhtml para criar um arquivo html com destaque da sintaxe do vim
  3. Use uma resposta daqui para copiar o html como rich text
  4. Cole em um e-mail (este não seria roteirizado)

Relacionados: Colando a saída do diff no Microsoft Outlook com realce de sintaxe

    
por idbrii 09.05.2015 / 17:04

2 respostas

3

Linux

via esta resposta

cat text.html | xclip -t text/html

Mac

via esta resposta

cat text.html | textutil -stdin -format html -convert rtf -stdout | pbcopy

Windows

No Windows antigo, você pode copiar nativamente somente texto simples (via esta resposta ).

type text.html | clip

No PowerShell, você pode copiar rich text:

type text.html | Set-Clipboard -AsHtml

Se você criar um C: \ sandbox \ pbcopy.ps1:

type $args[0] | Set-Clipboard -AsHtml

Em seguida, você pode ativar scripts e, em seguida, executá-lo em qualquer lugar (arquivos cmd.exe, .bat etc.):

powershell C:\sandbox\pbcopy.ps1 text.html

Existem alguns comandos diferentes do Cygwin para copiar para o Windows área de transferência e parece cygwin fornece xclip, então você provavelmente poderia usar a solução Linux no Windows se tiver o cygwin.

    
por 09.05.2015 / 17:04
0

Use o e-mail CSS! Use o arquivo html de codificação UTF8!

Execute o e-mail http ( HTML-eMail.html ) da linha comman:

powershell .\mail-http.ps1

mail-http.ps1:

$time = get-date 

$from    = '[email protected]'
$to      = '[email protected]'
$subject = 'eMail-HTML ' + $time

$server=smtp.gmail.com;$port=587

$encoding = [System.Text.Encoding]::UTF8

$email=new-object Net.Mail.MailMessage($from, $to, $subject, $body)
$email.DeliveryNotificationOptions=[System.Net.Mail.DeliveryNotificationOptions]::Delay
$email.IsBodyHtml = $true
$email.Priority = [System.Net.Mail.MailPriority]::High

$email.BodyEncoding=$encoding

$email.Body = gc '.\HTML-eMail.html' -encoding UTF8

$smtp=new-object Net.Mail.SmtpClient($server,$port)
$smtp.EnableSSL = $true
$smtp.Timeout = 30000  #ms
$smtp.Credentials=New-Object System.Net.NetworkCredential($from, 'derParol'); 

$smtp.Send($email)

HTML-eMail.html:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">

...

</html>
    
por 09.05.2015 / 18:37