使用Runspaces的Powershell脚本

时间:2018-02-05 05:22:05

标签: powershell scripting runspace

我是PowerShell的新手,只是为了练习,我得到了指示,"将财富100个URL读入数组...然后使用运行空间,连接到每个并写入您使用Invoke获得的页面 - WebRequest提交。"然后我收到了这个链接:https://www.zyxware.com/articles/4344/list-of-fortune-500-companies-and-their-websites

我一直在阅读所有关于运行空间的内容。现在我正在努力将我的链接变成一个数组,然后我可以将前100个网址拉出来。任何帮助/建议将不胜感激。

我现在遇到的问题是,当我调用链接变量时,它不会给我链接。看起来我应该只能调用$ link变量,以便我可以获取所有链接并将其放入数组中。我可以获得所有链接的唯一方法是使用" $ page.Links.href"。有人可以向我解释为什么称这个变量不起作用?

$page = Invoke-WebRequest https://www.zyxware.com/articles/4344/list-of-fortune-500-companies-and-their-websites

foreach($1 in $page.Links){
    if($1.href -like '*www*com'){
        Write-Host $1.href

        $link = $1.Links.href

    }
}

           $RunspacePool = [RunspaceFactory]::CreateRunspacePool(1, $Throttle)
$RunspacePool.Open()

1 个答案:

答案 0 :(得分:0)

一次一步。

在执行像运行空间一样先进的操作之前,您应该学习一些快速的PowerShell在线课程和材料,以便获得基准。特别是因为你说你从未真正使用过PoSH。

  

https://mva.microsoft.com/en-us/training-courses/getting-started-with-microsoft-powershell-8276

     

https://youtube.com/results?search_query=beginner+powershell

网上有几本免费的电子书......

  

https://powershell.org/ebooks

...以及许多可下载的脚本。

  

https://powershellgallery.com

和长长的资源列表...

  

Windows PowerShell生存指南   https://social.technet.microsoft.com/wiki/contents/articles/183.windows-powershell-survival-guide.aspx

首先了解如何使用PoSH WebCmdlet。

Get-Command -Name Invoke-WebRequest| Format-Table -AutoSize

CommandType Name              Version Source                      
----------- ----              ------- ------                      
Cmdlet      Invoke-WebRequest 3.1.0.0 Microsoft.PowerShell.Utility


# Get paramter, example, full and Online help for a cmdlet or function

(Get-Command -Name Invoke-WebRequest|).Parameters
Get-help -Name Invoke-WebRequest| -Examples
Get-help -Name Invoke-WebRequest| -Full
Get-help -Name Invoke-WebRequest| -Online


Get-Command -Name Invoke-RestMethod | Format-Table -AutoSize

CommandType Name              Version Source                      
----------- ----              ------- ------                      
Cmdlet      Invoke-RestMethod 3.1.0.0 Microsoft.PowerShell.Utility


# Get paramter, example, full and Online help for a cmdlet or function

(Get-Command -Name Invoke-RestMethod ).Parameters
Get-help -Name Invoke-RestMethod  -Examples
Get-help -Name Invoke-RestMethod  -Full
Get-help -Name Invoke-RestMethod  -Online


Then search using the string 'Invoke-WebRequest to parse website for URLs'

Do that website URL parsing first, get that where you need it then move on to runspaces.
If you can't make the first part happen the runspaces is moot.

因此,尝试使用您放在一起的代码获取网址,如果您对此有疑问,请发布您尝试过的内容,论坛将尝试投入。同样的事情将适用到了runpace部分的第二步。