PowerShell获得剪贴板上的数据

来源:互联网 发布:大数据算法分析 编辑:程序博客网 时间:2024/05/27 02:32

我们每个人一定都在Windows里做过以下几种操作,剪贴,复制,截图,拖拽等操作,而这些记录都会被Windows临时的记录在剪贴版上,有时候会遇到上一步的操作明明是正确的,比如复制了一段内容,但是粘贴的时候却没有按照正确的内容粘贴出来,这里面就是剪贴板的数据出现了问题,可是我们如何才能看到剪贴板里到底当前存在着什么内容呢,我们可以用如下代码看看:

If([System.Windows.Clipboard]::ContainsText()){    [System.Windows.Clipboard]::GetText()}ElseIf([System.Windows.Clipboard]::ContainsImage()){    [System.Windows.Clipboard]::GetImage()}ElseIf([System.Windows.Clipboard]::ContainsFileDropList()){    [System.Windows.Clipboard]::GetFileDropList()}
这里,我找到了最主要的剪贴板类,也就是[System.Windows.Clipboard],该类型下面包含了几个静态方法,大家可以查看MSDN网站或者在PowerShellISE里输入的时候可以通过智能列表查看。如上我写了几个判断语句,当任何执行条件为真的时候就可以罗列出对应的数据。

举例,我复制了一些文件列表,这时候我执行如上代码的时候,通过判断,代码最终执行了最后一个判断,并罗列了我之前复制的文件列表:

代码执行结果如下:

If([System.Windows.Clipboard]::ContainsText()){    [System.Windows.Clipboard]::GetText()}ElseIf([System.Windows.Clipboard]::ContainsImage()){    [System.Windows.Clipboard]::GetImage()}<strong>ElseIf([System.Windows.Clipboard]::ContainsFileDropList()){    [System.Windows.Clipboard]::GetFileDropList()}</strong>PS C:\Windows\system32> C:\Users\Administrator\Desktop\Untitled1.ps1C:\Program Files (x86)\Microsoft Help ViewerC:\Program Files (x86)\Microsoft OfficeC:\Program Files (x86)\Microsoft SDKsC:\Program Files (x86)\Microsoft SilverlightC:\Program Files (x86)\Microsoft SQL ServerC:\Program Files (x86)\Microsoft SQL Server Compact Edition
很顺利我们得到了如图片上那样对应的数据。

那么假设,我们还会经常遇到一种情况,如文章一开始提到的那样,很多时候明明复制的内容,粘贴出来却不是自己想要的,可能还是更上一次的内容,反复多次后依然这样,那如何能通过PowerShell解决呢?我们可以这样做:

[System.Windows.Clipboard]::Clear()
是的,没错,只要把剪贴板的缓存彻底清除一下就行了。
剪贴板类型下还有很多方法,比如我们可以用代码来设置数据,这样当我们粘贴的时候就自动输出了,大家可以试试。

0 0
原创粉丝点击