powershell - Powershell-从文本中删除元数据

标签 powershell text format clipboard

我想编写一个Powershell脚本,该脚本在运行时将从剪贴板中的文本中删除所有格式和类似的元数据。
我正在谈论诸如从Microsoft Word复制一些文本并将其粘贴到Excel中的事情,通常这会以粗体,斜体等方式粘贴它。格式化Word中的文本格式,但是我想粘贴它,就像我将其复制到记事本并从那里复制。

  • 我希望避免模拟打开notepad.exe,粘贴并再次复制的需要,因为我希望有一个更优雅/更智能的选项。
  • 我知道Office应用程序中有一个“仅文本”复制选项,但它不仅不能始终如您所愿/想要的那样工作,但是复制到其他应用程序中没有该选项。

  • 我知道如何使用“Get-Clipboard”从剪贴板中获取文本,然后使用“Set-Clipboard”进行设置,但是我不知道在哪里存储织补格式信息。

    最佳答案

    tl;博士

  • 只需调用Get-Clipboard即可为您提供所需的纯文本表示形式。
  • 如果希望文本以单行多行字符串而不是行数组形式返回,请添加-Raw

  • 背景信息:
  • 将基于富文本的格式复制到剪贴板的应用程序,例如Word和Excel复制RTF和HTML,通常还复制相同内容的纯文本表示形式。
  • PowerShell的 Get-Clipboard cmdlet检索纯文本表示形式:

    Windows PowerShell的中默认为
  • :
  • 要获取多种格式之一(如果存在),请使用具有适当枚举值的 -TextFormatType parameter。[1]

  • 在PowerShell [Core] v6 +
    中,
  • 始终不变,其中Get-Clipboard仅支持纯文本检索。
  • 另外,在两个PowerShell版本中,您都可以使用-Raw开关来请求将剪贴板上的多行文本作为单个多行字符串而不是行数组返回,这是默认设置。


  • [1]用显式参数表示默认行为:Get-Clipboard -Format Text -TextFormatType UnicodeText;该文档未指定枚举值Text是否以及如何不同。

    关于powershell - Powershell-从文本中删除元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63888948/

    相关文章:

    r - 组织子组字符串(文本)

    windows - 使用 Powershell 将目录中的所有文件夹重命名为单个数字或字符

    c# - 在 Windows 7 中使用 C++/C#/PowerShell 禁用/启用 USB 驱动程序而无需重新启动

    html - 使用 Canvas 标记图轴

    java - 在 Java 1.4 中格式化表格

    C 预处理器定义替换字符串格式说明符

    node.js - 如何格式化 node_redis 信息函数输出?

    powershell - 调用WebRequest和希伯来语字符

    powershell - SCCM设备集合查询:查找Intranet中的所有客户端

    ios - 如何在 iOS 中创建多行字符串或多行标签作为 CGPath?