如何从命令行将富文本发送到剪贴板?

idb*_*rii 11 html clipboard

如何从脚本将 html 作为富文本发送到剪贴板?我的最终目标是创建一个脚本,以便我可以将源文件中的内容粘贴到电子邮件中,但我想要一个通用的答案来粘贴到任何接受富文本的程序中。

粘贴到电子邮件的示例用法:

  1. 在vim中打开源文件
  2. 使用:TOhtml命令创建一个带有vim语法高亮的html文件
  3. 使用此处的答案将 html 复制为富文本
  4. 粘贴到电子邮件中(这个不会被脚本化)

相关:使用语法高亮将差异输出粘贴到 Microsoft Outlook 中

相关:将 Markdown 输入作为富文本复制到剪贴板

idb*_*rii 16

Linux

通过这个答案

cat text.html | xclip -t text/html
Run Code Online (Sandbox Code Playgroud)

苹果电脑

通过这个答案

cat text.html | textutil -stdin -format html -convert rtf -stdout | pbcopy
Run Code Online (Sandbox Code Playgroud)

视窗

在较旧的 Windows 中,您本机只能复制纯文本(通过此答案)。

type text.html | clip
Run Code Online (Sandbox Code Playgroud)

在 PowerShell 中,您可以复制富文本:

type text.html | Set-Clipboard -AsHtml
Run Code Online (Sandbox Code Playgroud)

如果您创建一个 C:\sandbox\pbcopy.ps1:

type $args[0] | Set-Clipboard -AsHtml
Run Code Online (Sandbox Code Playgroud)

然后你可以启用脚本,然后从任何地方运行它(cmd.exe、.bat 文件等):

powershell C:\sandbox\pbcopy.ps1 text.html
Run Code Online (Sandbox Code Playgroud)

几个不同的 Cygwin 命令可以复制到 Windows 剪贴板,看起来cygwin 提供了 xclip,所以如果你有 cygwin,你可能可以在 Windows 上使用 Linux 解决方案。

  • 在 Windows 中,您可以使用 cli 将富文本放入剪贴板。只需使用以下 PowerShell 命令:`Echo "<p>foo <strong>bar</strong></p>" | 设置剪贴板 -AsHtml` (2认同)