我正在尝试弄清楚如何使用此类。我想我知道如何让它工作,当我想检查剪贴板是否具有格式时text
。复制文本后,返回以下内容true
:
[System.Windows.Forms.Clipboard]::ContainsData('text')
但是,如果我从一篇文章或网页上复制带有链接的文章,则会返回以下内容false
:
[System.Windows.Forms.Clipboard]::ContainsData('html')
我确信我的剪贴板中有 html 格式,因为我可以将其粘贴到允许我这样做的软件中,例如 Obsidian。
我这样做是因为我想以 html 格式获取剪贴板内容。我尝试了以下操作:
[System.Windows.Forms.Clipboard]::GetData('text')
并返回一个对象:
CanRead : True
CanSeek : True
CanWrite : True
Capacity : 2354
Length : 2354
Position : 0
CanTimeout : False
ReadTimeout :
WriteTimeout :
但做同样的事情[System.Windows.Forms.Clipboard]::GetData('html')
却没有任何返回结果,我再次确信我的剪贴板中有 html 内容。
我需要这样做,因为我只需要将剪贴板的 html 内容作为字符串获取,以便在 PowerShell 中进一步处理。我使用的是 pwsh 7.4
使用静态类的静态字段
[System.Windows.Forms.DataFormats]
指定众所周知的数据格式作为调用中的参数[System.Windows.Forms.Clipboard]::ContainsData()
,具体[System.Windows.Forms.DataFormats]::Html
在这种情况下:请注意,这将测试在复制时明确声明为代表 HTML 的数据 - 尤其是在您在 Web 浏览器中选择并复制文本时 - 而不仅仅是任何恰好是 HTML 的字符串数据。
类似地,您可以将相同的字段传递给
[System.Windows.Forms.Clipboard]::GetData()
方法以检索众所周知的格式:请注意,生成的多行
[string]
包含原始 HTML 源代码之前的元数据;例如: