0

スクリプトが実行されているマシンの詳細に基づいて検証を実行しています。現在、次のいずれかを返す API があります。

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

これらの 7 つの結果の 1 つに基づいて、異なる一連の検証 (関数) を実行する最も効率的な方法は何でしょうか?

編集:これは、私が達成しようとしていることを表す擬似コードです。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
        }
    }
}
4

1 に答える 1

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 は、確認しようとしている内容の詳細に応じて異なります。

于 2013-08-26T19:19:30.040 に答える