在foreach循环中运行多个功能

时间:2019-02-19 14:13:59

标签: function powershell loops

我有一个大型Powershell脚本,用于检查VM上的多个变量。该脚本包含大约80个不同的函数,分别命名为question1,question2,question3 ...

起初,这些功能都不需要参数,因此此代码有效。

$number_of_questions = 1..75
foreach($num in $number_of_questions){
        Invoke-Expression question$num
    }

遍历每个问题

但是现在我需要在运行函数时添加参数。那是行不通的。而且我找不到一种使它与参数一起使用的方法

这里是我想做的事的测试版本。

function test1($text){
    Write-host "Not argument"
    Write-host $text
}

function test2($text){
    Write-host "Not argument"
    Write-host $text

}

function test3($text){
    Write-host "Not argument"
    Write-host $text

}

function test4($text){
    Write-host "Not argument"
    Write-host $text

}

function test5($text){
    Write-host "Not argument"
    Write-host $text

}

$num = 1..5

foreach($number in $num){
    Invoke-Expression test$number -text "Argument"
}

任何人都有使用带有参数的顺序名称运行多个功能的解决方案。

1 个答案:

答案 0 :(得分:2)

只需替换:

Invoke-Expression test$number -text "Argument"

具有:

Invoke-Expression "test$number -text `"Argument`""

使其正常工作。