2009-05-12 10 views
6

ポート1099が既に使用されている場合にエラーとなるバッチスクリプトを作成しようとしています。ポートが使用中の場合にエラーメッセージを出力するWindowsバッチスクリプト

残念ながら、私はDOSバッチスクリプトで書いています(何もインストールできません)。

私は手動でポート1099を占有プロセスのPIDを印刷できることを知っている:

netstat -aon | findstr ":1099" 

しかし、私は、バッチスクリプトでそのコマンドを実行することができると場合は、エラーメッセージを表示してスクリプトを終了したいですそのコマンドには出力があります。

私は一時ファイルに出力をリダイレクトし、それの大きさをテストすることができ、プッシュで仮定が、それは本当にハックようだ...

答えて

11
netstat -an | FINDSTR ":1099" | FINDSTR LISTENING && ECHO Port is in use && EXIT 1 

あなたは実行するバッチスクリプトで&&を使用することができます(終了コード/ ERRORLEVELに基づいて)前のコマンドが成功した場合にのみ、コマンドを実行します。これにより、探している文字列がnetstatの出力にある場合にのみ、メッセージを表示して終了することができます。

さらに、LISTENINGポートを明示的に検索する必要があります。

netstat -an | findstr /RC:":1099 .*LISTENING" && ECHO Port is in use && EXIT 1 
+0

うわー、おかげ:あなたは、コマンドラインを短くするために次の操作を行うことができますので

FINDSTRは、正規表現をサポートしています。私はちょうどそれをテストし、それは完全に動作します。 また、 "o"スイッチが重複していたことに気付きました。 –

関連する問題