将变量附加到字符串以拉取现有变量的值

时间:2017-06-21 18:33:31

标签: powershell variables

我目前正在学习PowerShell,我无法弄清楚如何组合字符串和变量来从现有变量中提取信息。

用户输入只是一个数字,所以1,2,3等我需要附加到$ option的末尾,它将从变量$ optionX中提取标题信息。

到目前为止,我尝试过的所有内容只是将其解释为字符串并将$ OptionX打印到控制台中,而不是$ OptionX持有的值。

例如:

    function Title{
    Write-host "$OptionName for:"$computerSystem.Name -BackgroundColor DarkCyan 
}


function GetMenu { 

    # Set the menu options
    $Option1 = "1) System Information"

    # Get menu selection
    $Navigation = Read-Host "Enter Selection" 

    ToolBox 

}

function ToolBox{ 
    Clear-Host 
    switch ($Navigation){ 
        1 { #Script 1
            Title

          } 

2 个答案:

答案 0 :(得分:0)

我想出了如何做到这一点,我不确定它是否是最好的方法,但它确实做了我需要做的事情。

function Title{
    $OptionCombine = "Option"+$Navigation
    $OptionName = Get-variable $OptionCombine -ValueOnly
    Write-host "$OptionName for:"$computerSystem.Name -BackgroundColor DarkCyan 
}

答案 1 :(得分:0)

你可以在自我回答中做你做的事情。我建议使用哈希映射,但对我来说似乎更干净。 (我不知道$ computersystem.Name-part是什么,所以我把它留在了):

HttpClient

对于你的其余部分我可以看到你正在广泛使用全局变量,我会避免(它会让你感到困惑,让你更难理解发生了什么,以及许多其他不使用它们的原因)。查看使用函数的参数,使用Powershell ISE中的代码段菜单(CTRL + J)将为您创建一个快速的函数框架。如果您想在Powershell函数中进一步开发,请在同一菜单中查看Cmdlet(高级函数)模板。