簡體   English   中英

使用參數調用powershell函數

[英]call powershell function with parameters

我剛剛開始使用Windows Powershell,我嘗試創建一個解析網頁的函數。 我已經測試了函數中的各個調用,它們似乎正常工作。 這是我創建的功能。

function GoTo-Website ([string]website = "google.com")
{
     $ie.navigate($website);

     $image = @($ie.Document.getElementByName("main_image"))[0].href;

     $title = @($ie.Document.getElementByTagName("h1"))[3].innerHTML;

     $date = @($ie.Document.getElementByTagName("h3"))[0].innerHTML;
}

它存儲在當前powershell目錄中的powershellScript.ps1中。

我調用此函數時可以得到的最佳錯誤是

功能goto-website“網站”

函數聲明中缺少函數體。 在行:1 char:23 + function goto-website <<<<“website”+ CategoryInfo:ParserError:(:) [],+ FullyQualifiedErrorId:MissingFunctionBody

反正有沒有修改我的代碼來傳遞這個解析器錯誤?

我也想知道他們是否是一種在呼叫前不調用“功能”來調用函數的方法?

試試這個修改過的代碼版本

function GoTo-Website
{
    Param ($website)
    $ie.navigate($website);
    $image = @($ie.Document.getElementByName("main_image"))[0].href;
    $title = @($ie.Document.getElementByTagName("h1"))[3].innerHTML;
    $date = @($ie.Document.getElementByTagName("h3"))[0].innerHTML;
}

你可以打電話給

GoTo-Website "http://www.google.com"

要么

GoTo-Website -website "http://www.google.com/"

無需在通話前輸入“功能”。

有關功能的更多信息,請參閱Scripting Guy博客上的今日帖子

在遵循如何添加參數[並意識到我必須將我的函數復制並粘貼到powershell]的建議后,我能夠調用我的函數。 這是該功能的修改版本

function GoTo-Website

{ Param ($website)

  $global:ie.navigate($website);

  $global:image = @($ie.Document.getElementById("comic_image"))[0].href;

  $global:title = @($ie.Document.getElementsByTagName("h1"))[3].innerHTML

  $global:date = @($ie.Document.getElementsByTagName("h3"))[0].innerHTML;

}

我還必須將我的參數更改為全局以公開結果並訪問已激活的Internet Explorer變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM