创建与正则表达式匹配的 Windows 个服务的集合

Create a collection of Windows Services matching a regular expression

我想创建一个 Windows 服务的集合,这些服务将使用 Where 子句匹配正则表达式。

例如,我有 3 个 Windows 服务调用:

RCLoad1
RCLoad2
RCLoad3

我的正则表达式类似于:“^RCLoad*”

我想使用类似的东西:

ServiceController[] myServices = ServiceController.GetServices(ServerName)
    .Where Regex.IsMatch(....)

但我无法让它工作。

您不清楚具体故障。

GetServices(ServerName) 实际上 return 是一个项目列表吗?

后面你不提什么属性有服务器的名字,是不是Name因为您现在拥有的代码采用对象 ToString(),这很可能默认为类型名称 ,因此失败。 (?)

找到正确的 name 属性 并使用模式 RCLoad,它将在字符串的任何位置找到它,然后放入 ToList() 比如

Regex rgx = new Regex(@"RCLoad"); // RCLoad can be anywhere in the string.

var controllers = ServiceController.GetServices(ServerName)
                                   .Where(sc => rgx.IsMatch( sc.Name )) 
                                   .ToList();