使用参数调用powershell函数
问题描述:
我刚刚开始使用Windows Powershell,我尝试创建一个解析网页的函数。我已经测试了该功能中的单个呼叫,并且他们似乎正在正常工作。这是我创建的功能。使用参数调用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中。
当我把这个功能,我可以得到最好的错误是
功能后藤网站“网站”
缺少函数体的函数声明。在行:1字符:23 +功能后藤网站< < < < “网站” + 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/"
无需调用把 “功能” 的称呼了。
有关功能的更多信息,请参阅脚本专家博客上的today's post。
答
在关于如何添加参数[和实现我必须将我的函数复制并粘贴到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中变量的修改版本。
是的。在改变了参数的调用方式之后,**意识到我必须将我的代码复制并粘贴到powershell **中,并且使我的变量成为全局变量来公开结果,它工作正常。 – user1207381 2012-03-21 03:25:36