創建一個PowerShell腳本擴展,該模塊ClassNamer.psm1的代碼如下所示:
function Get-ClassName {
$ie = new-object -com InternetExplorer.Application
$ie.navigate("http://www.classnamer.com/")
if (!$ie) { Write-Host "variable is null" }
while ($ie.Busy -eq $true)
{
Start-Sleep -Milliseconds 1000;
}
$doc = $ie.Document
if (!$doc)
{
Write-Host "variable is null"
return "SorryCantGiveYouAGenericClass"
}
$answer = $doc.getElementByID("classname")
return $answer.innerHtml
}
Export-ModuleMember
Get-ClassName
有兩部分此代碼,函數的定義和定義 public函數,從模塊組的導出命令。這裡是Get-類名函數的簡短描述:
- 建立一個IE Object
- 瀏覽獲得頁面
- 睡眠而忙碌(或許應該加上一個最大循環計數器)
- 得到的文檔,這是web頁面的DOM
- 查詢相關元素的doc Object和取得的Value
接下來的部分是寫獲得該模組導入的Script,init.ps1到Package Manager Console,該代碼如下所示:
param($installPath, $toolsPath,
$package, $project)
Import-Module(Join-Path
$toolsPath ClassNamer.psm1)
當上述Script運行時,將導入模塊ClassNamer.psm1。現在需要做的就是把兩個PowerShell的文件放在一個文件夾的工具,並在同一個文件夾中,執行了NuGet的命令規範ClassNamer tools文件夾。該命令將產生一個ClassNamer.nuspec文件的default metadata。當我們在ClassNamer.nuspec執行NuGet pack,它會創建一個pack,其中包含工具文件夾,當我們在Visual Studio安裝的軟體包的init.ps1腳本會被NuGetybgz執行行和安裝模組。如果部驟正確,將能夠看到已經安裝的軟件包並運行新的Get-類名的命令。
-雲遊山水為知已逍遙一生而忘齡- 電腦神手
沒有留言:
張貼留言