2016-09-28 14 views
0

私はちょっとしたジレンマを抱えています。保存された接続からの未知の接続をテキストファイルに検出するバッチアプリケーションを作成しようとしています。何とかnetstatの結果をテキストファイルのものと比較するアプリが必要です。ここで私が試したことは次のとおりです:netstatによる不正な接続を検出するバッチファイルを作成しようとしています

if %netstat -b 5% equ c:\list.txt goto :win 
else goto :fail 

私は解決策を見つけることを試みましたが、役に立たなかった。多分私は何か間違っているのでしょうか?または、これを行う別の方法がありますか? netstatコマンドで、結果をテキストファイルに記録されたものと比較します。私を助けてください!

+1

これは確かにIFコマンドの有効な構文ではありません。まず、ヘルプファイルを読んでみてください。 – Squashman

答えて

1

次のコマンドは、あなたが行っていることを行います。

for /f "tokens=3" %%f in ('netstat -b 5') do (
    findstr /c:"%%f" c:\list.txt && (
     echo Allowed %%f 
    ) || (
     echo Disallowed %%f 
    ) 
) 

これは、出力の各行でnetstat -b 5から繰り返されます。 (これは実際にテストするために遅いので、出力をnetstat.outputにリダイレクトし、代わりにファイルをロードしたことに注意してください)。

説明:

  • For /F - 各行を反復その括弧内のコマンド/ファイルから欠点。
  • tokens=3から
  • を実行するコマンド - do
  • を反復するために行のソース - 変数
  • 'netstat -b 5'またはnetstat.outputの名前 - 私の第三のトークン(リモートアドレス)
  • %%fを取得

次に、findstrを起動して、ファイルc:\list.txtに文字列%%fを検索するように指示します。成功すると、&&コマンドはこのアドレスをエコーし​​ます。そうでない場合、文字列が見つからない場合、||コマンドが実行されます

関連する問題