【问题标题】:What can I change in this script to prevent an infinite loop我可以在此脚本中进行哪些更改以防止无限循环
【发布时间】:2015-10-30 01:30:30
【问题描述】:

这是我的 Powershell 代码,当我执行它时,它会在唤醒我的内部站点时不断循环

$urlFile = "C:\Users\lfouche\Desktop\url\url.txt"
foreach($site in Get-Content $urlFile){
function WakeUp([string] $url)
{
Write-Host "Waking up $url ..." -NoNewLine
$client = new-object system.net.WebClient
$client.UseDefaultCredentials = $true
$null = $client.OpenRead($url)
$client.Dispose()
Write-Host " Ok"
}
@(
      Get-Content $urlFile
  ) | % { WakeUp $_ }

}

【问题讨论】:

    标签: powershell powershell-4.0 powershell-ise


    【解决方案1】:

    好吧,您的脚本通常可以改进,但我认为错误是您已经在 foreach 条件和循环中迭代了 Get-Content $urlFile。试试这个:

    # define the wake up function once
    function WakeUp
    {
        Param
        (
            [string] $url
        )
    
        Write-Host "Waking up $url ..." -NoNewLine
    
        $client = new-object system.net.WebClient
        $client.UseDefaultCredentials = $true
        $null = $client.OpenRead($url)
        $client.Dispose()
    
        Write-Host " Ok"
    }
    
    $urlFile = "C:\Users\lfouche\Desktop\url\url.txt"
    $sites = Get-Content $urlFile
    foreach($site in $sites)
    {
        # call wake up for each site
        WakeUp $site
    }
    

    【讨论】:

    • 这完美地解决了我试图让它工作的方式谢谢你
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-02
    相关资源
    最近更新 更多