2

我对 Powershell 很陌生。我正在运行 2 个不同的脚本,我想将它们合并为一个脚本。

脚本 1 有 1 行

Stop-Process -ProcessName alcore.*  -force

它的目的是结束任何以“alcore”开头的进程。

脚本 2 也有 1 行

Start-Service -displayname crk*

它启动任何以 crk 开头的服务。

如何将这些组合成一个脚本?如果进程正在运行,我希望停止它们,如果没有,我希望启动服务。我怎样才能做到这一点?

我正在尝试这个,但它不起作用

$services = Get-Process alcore.*

if($services.Count -qe 1){
    Stop-Process -ProcessName alcore.*  -force
} else {

    Start-Service -displayname crk*
}

我怎样才能正确地做到这一点?我还应该将它们包装在一个函数中并调用该函数吗?这似乎更干净一些。谢谢你的帮助。

干杯,
~ck

4

1 回答 1

6

使用 Get-Service 获取服务状态。该进程可能正在运行,但服务可能已暂停:

$services = @(Get-Service alcore.*)
foreach ($service in $services)
{
    if ($service.Status -eq 'Running')
    {
        $service | Stop-Service
    }
    else
    {
        Start-Service -DisplayName crk*
    }
}
于 2010-06-29T19:29:57.737 回答