2017-06-14 126 views
-4

我试图检查运行jar文件后Tomcat是否准备就绪。我在StackOverflow上找到了这个代码,我想编写Windows bash等效代码。检查HTTP端口是否在Windows上打开

我的想法是登录文件,并检查各10个secondes在为当Tomcat完成加载

这似乎句子中的日志文件是我的代码:

@echo off 
start javaw -jar ICAPS_DASHBOARD-0.1.0-SNAPSHOT.jar 1>> log.txt 
::loop will be here 
findstr /m "Started IcapsDashboardApplication" log.txt 
if %errorlevel%==0 (
echo There is hope! 
goto fin 
) 
echo no hope 
:fin 
echo fin 
pause >nul 

,但我什么也没得到日志文件 如果我这样做

javaw -jar ICAPS_DASHBOARD-0.1.0-SNAPSHOT.jar 1>> log.txt 

他不在下面运行命令。 感谢

+1

SO不是免费的翻译服务。你到目前为止试过了什么(显示你的代码),以及你需要什么特别的问题(在你的代码中)? –

+0

你可能是对的我会尝试添加一些代码,:) – mustafa918

+0

@AnsgarWiechers你可以看到这个编辑请 – mustafa918

回答

1

您可以使用此功能(学分去托比亚斯Weltner,据我记得):

function Test-NetworkPort 
{ 
    param 
    (
     $ComputerName = $env:COMPUTERNAME, 
     [int32[]] 
     [Parameter(ValueFromPipeline=$true)] 
     $Port = $(137..139 + 443 + 445), 
     [int32] 
     $Timeout=1000, 
     [switch] 
     $AllResults 
    ) 
    process 
    { 
     $count = 0 
     ForEach ($PortNumber in $Port) 
     { 
      $count ++ 
      $perc = $count * 100/$Port.Count 
      Write-Progress -Activity "Scanning on \\$ComputerName" -Status "Port $PortNumber" -PercentComplete $perc 
      # in PowerShell 2.0 muss [Ordered] entfernt werden 
      # dann ist die Reihenfolge der Eigenschaften aber zufällig. 
      $result = New-Object PSObject -Property ([Ordered]@{ 
       Port="$PortNumber" 
       Open=$False 
       Type='TCP' 
       ComputerName=$ComputerName 
       }) 
      $TCPClient = New-Object System.Net.Sockets.TcpClient 
      $Connection = $TCPClient.BeginConnect($ComputerName, $PortNumber, $null, $null) 
      try 
      { 
       if ($Connection.AsyncWaitHandle.WaitOne($Timeout, $false)) 
       { 
        $null = $TCPClient.EndConnect($Connection) 
        $result.Open = $true 
       } 
      } 
      catch {} 
    finally { $TCPClient.Close() } 
      $result | Where-Object { $AllResults -or $_.Open } 
     } 
    } 
} 

使用方法如下Test-NetworkPort -Computername Tomcat1 -Port 80, 8080, 443 -Allresults

备注:如果使用PowerShell 2,您需要删除第012行的字[ordered

+0

谢谢,我需要简单的代码 – mustafa918