我们每个人一定都在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.ps1
C:\Program Files (x86)\Microsoft Help Viewer
C:\Program Files (x86)\Microsoft Office
C:\Program Files (x86)\Microsoft SDKs
C:\Program Files (x86)\Microsoft Silverlight
C:\Program Files (x86)\Microsoft SQL Server
C:\Program Files (x86)\Microsoft SQL Server Compact Edition
很顺利我们得到了如图片上那样对应的数据。
那么假设,我们还会经常遇到一种情况,如文章一开始提到的那样,很多时候明明复制的内容,粘贴出来却不是自己想要的,可能还是更上一次的内容,反复多次后依然这样,那如何能通过PowerShell解决呢?我们可以这样做:
[System.Windows.Clipboard]::Clear()
是的,没错,只要把剪贴板的缓存彻底清除一下就行了。
剪贴板类型下还有很多方法,比如我们可以用代码来设置数据,这样当我们粘贴的时候就自动输出了,大家可以试试。