递归函数调用:Powershell(范围?)

时间:2017-03-30 11:45:24

标签: powershell recursion scope powershell-v2.0

无法让我的菜单工作。我想做一个菜单课,但我坚持使用v2。每次我输入" 1"在"主菜单",它将简单地重新呈现主菜单,而不是使用新的$ menuType重新输入功能。

at_c<N>

当您输入&#34; 1&#34;时的预期结果在主菜单中,您将看到&#34; addScanner&#34;菜单。这对我来说似乎是一个范围问题,但我似乎无法弄清楚如何纠正它?

1 个答案:

答案 0 :(得分:1)

您正在使用=来比较参数,您需要使用-eq

您还有一个拼写错误,错过了n中的addScanner

这是一个精简的例子:

function presentMenu
{
    param ([string]$menuType)
    if($menuType -eq "Main")
    {
         Write-Host "MAIN MENU: 1.) Add Scanner 2.) Remove Scanner 3.) Lookup Scanner Config 4.) Exit"
         $command = Read-Host
         if ($command -eq 1)
         {
             presentMenu addScanner
         }
    }
    elseif($menuType -eq "addScanner")
    {
        Write-Host "ADD SCANNER: 1.) From File 2.) From Input 3.) Back  4.) Exit"
        $command = Read-Host
        if ($command -eq 1)
        {
            Write-Host "Scanner added"
        }
    }
}

presentMenu Main