电源壳 |将 Tomcat-Restart-Process 显示为进度条

Powershell | Show Tomcat-Restart-Process as a progress bar

有四个 Tomcat 服务。我想重新启动它并将状态显示为进度条。停止 4 次,开始 4 次,共 8 步。我尝试了以下方法,但不幸的是它没有给出预期的结果。我也不知道该怎么做。有谁能帮帮我吗?

        for ($i = 1; (Get-Service -DisplayName *tomcat*).Count -le 5; $i++ )
    {
        Write-Progress -Activity "Search in Progress" -Status "$i% Complete:" -PercentComplete $i
        Get-Service -DisplayNAme *tomcat* | stop-service -WarningAction SilentlyContinue
    }

for ($i = 1; (Get-Service -DisplayName *tomcat*).Count -le 5; $i++ )
    {
        Write-Progress -Activity "Search in Progress" -Status "$i% Complete:" -PercentComplete $i
        Get-Service -DisplayNAme *tomcat* | start-service -WarningAction SilentlyContinue
    }

为什么先一个循环停止服务然后另一个循环重新启动它们?
还有一个 Restart-Service cmdlet 可以停止然后启动服务,因此您只需要一个循环。
此外,如果您在变量中捕获 Get-Service cmdlet 的结果,您将不必一遍又一遍地执行此操作:

# the @() ensures the result is an array so we can use its .Count property
$tomcat = @(Get-Service -DisplayName *tomcat* )

for ($i = 1; $i -le $tomcat.Count; $i++) {
    Write-Progress -Activity "Restarting Tomcat service" -Status "$i% Complete:" -PercentComplete $i
    $tomcat[$i -1] | Restart-Service -Force -ErrorAction SilentlyContinue
}