2017-06-14 129 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