我有一个类似于以下的文件
C:\path\AP1\com1\web.config
C:\path\AP2\com1\web.config
C:\path\AP1\com2\web.config
C:\path\AP2\com2\web.config
C:\path\AP1\com4new\web.config
C:\path\AP2\com4new\web.config
C:\path\AP1\thirdFolder\web.config
C:\path\AP2\thirdFolder\web.config
无论环境如何,此文件都会在每台服务器上输出。我正在创建一个验证脚本,只包含每个服务器的相关行。
服务器数据的示例如下
<server compName="serverName102">
<ip>192.168.1.1</ip>
<type>App</type>
<env>test</env>
<instances>Com2, Com3</instances>
<AppPools>bo, fo</AppPools>
</server>
如果服务器的AppPools
设置包含fo
,那么我需要包含任何包含AP1
. 如果AppPools
contains bo
,那么我需要AP2
,显然如果它包含两者,我需要两行。
如果服务器的instances
contains Com2
,那么我需要包含任何包含com2
OR的行com4new
。Com3
将是thirdFolder
线条。
我目前有几个 if 语句,如下所示
if ($serverInst -like "*com2*"){
$refinedResults += $allResults | where-object {$_ -like "*com2*" -or $_ -like "*com4new*"}
}
问题是我几乎很肯定我如何做到这一点几乎不是最好的方式,或者我应该如何做到这一点。任何人都可以提供一些关于执行此验证的最佳方法的见解吗?