Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 循环正在复制输出_Arrays_Loops_Powershell_Foreach - Fatal编程技术网

Arrays 循环正在复制输出

Arrays 循环正在复制输出,arrays,loops,powershell,foreach,Arrays,Loops,Powershell,Foreach,下面的代码用于检查两个硬编码的服务名称(它们永远不会更改),如果未找到它们,则说明服务不存在。它会这样做,但它会输出两行,因为有两个服务需要检查 有没有办法改变这一点,以便在检查两个服务之后只给出一个输出 $servicenames=(“服务1”、“服务2”) 写入主机“检查服务” 功能服务验证{ foreach($sn in$servicenames){ if((获取服务“$servicenames*”-包括$servicenames)-eq$null){ 写下主持人“年轻的绝地武士,你错了,

下面的代码用于检查两个硬编码的服务名称(它们永远不会更改),如果未找到它们,则说明服务不存在。它会这样做,但它会输出两行,因为有两个服务需要检查

有没有办法改变这一点,以便在检查两个服务之后只给出一个输出

$servicenames=(“服务1”、“服务2”)
写入主机“检查服务”
功能服务验证{
foreach($sn in$servicenames){
if((获取服务“$servicenames*”-包括$servicenames)-eq$null){
写下主持人“年轻的绝地武士,你错了,这个服务器不是收集器!”
}否则{
写入主机“$servicenamespresent”
}
}
}
接受服务列表,因此您可以简单地执行以下操作,而无需循环。不过,如果要将检查封装到函数中,我建议将服务作为参数传递

功能服务验证($svc){
if(获取服务$svc-ErrorAction SilentlyContinue){
写下主持人“年轻的绝地武士,你错了,这个服务器不是收集器!”
}否则{
写入主机“$svc present”
}
}
servicevalidation$servicenames
-ErrorAction SilentlyContinue
在服务不存在的情况下抑制错误输出

如果您想知道到底缺少哪项服务,可以使用
Where对象
过滤器:

功能服务验证($svc){
$missing=$svc | Where对象{
-不(获取服务$\错误操作SilentlyContinue)
}
如果($缺失){
写入主机“缺少服务:$missing”
}否则{
写入主机“$svc present”
}
}

您不能将服务名称与包含选项一起使用,请参阅。我确信您希望检查此条件
if((获取服务$sn)-eq$null)