基于不同结果设置变量的最有效方法

时间:2013-08-26 17:25:28

标签: function powershell

我正在根据运行脚本的机器的详细信息运行验证。我目前有一个API将返回以下

中的一个

Name1
Name1, Name2
Name1, Name3
Name1, Name2, Name3
Name2, Name3
Name2
Name3

基于这7个结果中的一个,运行不同验证集(函数)的最有效方法是什么?

编辑:这是一些伪代码来表示我想要完成的任务。我希望在每个开关清洁器的where-object中进行切换和值

function returnRelevantBlankValues {
    $instance = $args[0] #could be any 7 of the strings above
    $inputFile = "C:\path\input.txt"
    $fileResults = "C:\path\output.txt"
    switch ($instance){
        "name1" {
            Get-Content $inputFile | where-object {
                $_ -like "*name1*" -and $_ -notlike "*name2*" -and $_ -notlike "*name3"} > $fileResults
        }
        "name1, name2" {
            Get-Content $inputFile | where-object {
                $_ -like "*name1*" -and $_ -like "*name1*" -and $_ -notlike "*name3"} > $fileResults
        }
    }
}

1 个答案:

答案 0 :(得分:1)

我根据服务器的角色进行验证,服务器可以有多个。

首先我创建服务器对象:

$servers = @()
$servers += New-Object -Type PSObject -Property @{
   Name = "Server1"
   Role = "DB"
}
$servers += New-Object -Type PSObject -Property @{
   Name = "Server2"
   Role = "DB","Application"
}

(实际上我将它们存储在XML中,但这可行)

然后,您可以使用$_.Role -contains "Application"来确定是否要运行检查。这也使得最终添加具有类似角色的其他服务器变得更容易。 YMMV取决于您要检查的内容的详细信息。