Jeffrey Snover於Send-SignatureToClipBoard該篇文章提到可以將文字透過CLIP指令導到剪貼簿中
但是Windows XP沒有CLIP指令,因此必須尋求其他的方式達成此目的

Scripting Guy於How Can I Grab a URL From the Clipboard and Then Open That Web Site in a Browser? 中提到可透過IE存取剪貼簿

我們因此可以寫一個function CopyToClipBoard
內容是利用ScriptControl去執行一個由VBScript所撰寫的副程式
該副程式則如同Scripting Guy所使用的方法利用IE存取剪貼簿

function CopyToClipBoard {

[string]$Result=""
foreach($line in $input) #input為來自pipeline的資料
{
$Result=$Result+"$line"+[char]13+[char]10    
#將一行一行讀入的字串用換行符號區隔並組成一個新字串
}
$ScriptControl = New-Object -ComObject ScriptControl
$ScriptControl.Language = "VBScript"
$ScriptControl.AddCode('Sub ToClipBoard(Byval s) Set objIE = CreateObject("InternetExplorer.Application"):objIE.Navigate"about:blank"):objIE.document.parentwindow.clipboardData.setData "text",s:objIE.Quit:End Sub')
$myVBCodeObj = $ScriptControl.CodeObject
$myVBCodeObj.ToClipBoard($Result)

}


使用方法:
可以接受自行輸入的字串
PS C:\> "Copy Something in the clipboard" | CopyToClipBoard
或者是一個文字檔內容
PS C:\> get-content d:\a.txt | CopyToClipBoard

我們可以使用clipbrd
檢查目前剪貼簿的內容為何
PS C:\> clipbrd

創作者介紹

PowerShell@HungYuWu

ayowu 發表在 痞客邦 PIXNET 留言(0) 人氣()