启动Apache失败,没有错误

时间:2015-08-12 00:25:43

标签: apache powershell

我的Windows服务中有一个Apache服务'SERV [XYZ]',我希望能够从PowerShell脚本启动它。

在脚本中,我添加了变量保存服务名称:

$serv = "SERV[XYZ]";
stop-service $serv;
start-service $serv;

但这不会启动该服务。 PowerShell执行时没有错误。

1 个答案:

答案 0 :(得分:1)

*-Service cmdlet对服务名称执行wildcard matches。例如,请参阅Start-Service的文档:

  

<强>参数
  的 -DisplayName&LT;字符串[]&GT;

     

指定要启动的服务的显示名称。 允许使用通配符。

模式[XYZ]表示“匹配任何字符X,Y或Z”(就像在正则表达式中一样),因此您的语句会尝试停止/启动名为SERVX的服务,{{1和/或SERVY。要匹配文字字符串SERVZ,您需要阻止将方括号视为特殊字符,例如像这样:

[XYZ]

如果您只有一个名称以$serv = 'SERV[[]XYZ[]]' Stop-Service $serv Start-Service $serv 开头的服务,您还可以使用SERVSERV*这样的模式,其中SERV?XYZ?(匹配单个的通配符)字符)掩盖方括号。

另一种选择是使用没有名称的?并通过Get-Service过滤结果:

Where-Object