• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:バッチファイル(テキスト読み込み)について)

バッチファイルでサーバーログから最大同時アクセス数を集計する方法

このQ&Aのポイント
  • サーバーから取得したライセンスログを使用して、最大同時アクセス数を集計するバッチファイルの作成方法を教えてください。
  • ログを一行ずつ読み込み、'OUT'の文字があれば変数を+1、'IN'があれば-1していき、最大の値を別の変数に格納する方法を教えてください。
  • ログの例に基づいて、最大同時アクセス数を3という値として求める方法を具体的に教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.4

バッチで出来ます。 最初の xxx の部分には空白が含まれないとして、ファイル各行の第3語を取り出してそれを使います。第3語がIN,OUTならいいので、その右のxxxxには空白があってもいいです。 setlocal enabledelayedexpansion set N=0 set MAX=0 for /f "tokens=3" %%A in (logfilename) do (  if %%A==IN set /a N-=1  if %%A==OUT set /a N+=1  if !N! gtr !MAX! set MAX=!N! ) echo MAX=%MAX%

WAKABA_PAPA
質問者

お礼

回答ありがとうございました。 さっそく、試したところ、 正常に集計されました。 どうもありがとうございました。

その他の回答 (4)

  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.5

WindowsならWSHを使用して作成するのが簡単だと思われます。 JScriptかVBScriptになるのでVBAやJavaScriptの経験があれば比較的簡単に作ることができるとおもいます。 WSHはバッチに比べ機能が豊富でとても便利ですので覚えて損はないと思います。

WAKABA_PAPA
質問者

お礼

アドバイスありがとうございます。 VBはよく使うので、WSHを覚えてみようと思います。

  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.3

#2です。 2)OUTの両端は空白が1桁1以上必ず存在しますか。 3)INの両端は空白が1桁1以上必ず存在しますか。 は、 2)"OUT"の文字の両端は空白が1桁以上必ず存在しますか。 3)"IN"の文字の両端は空白が1桁以上必ず存在しますか。 の誤りです。訂正致します。

  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.2

これをバッチファイル(.bat)で行うのは、無理なように思われます。 1.perlでなら、簡単に実現出来ますが、perlでの回答を希望されますか?(希望されるなら、perlでスクリプトを書きます) 2.ログファイルのフォーマットの確認です。 1)ログのパターンは、OUT,IN,以外の3つですか。 2)OUTの両端は空白が1桁1以上必ず存在しますか。 3)INの両端は空白が1桁1以上必ず存在しますか。 3.素直に考えるとログインでIN、ログアウトでOUTとなり、最大同時ログイン数はINで+1,OUTで-1かと思うのですが、OUTで+1,INで-1で間違いないでしょうか?

WAKABA_PAPA
質問者

お礼

ご回答ありがとうございます。 バッチでは難しいようですね. 1.について 私自身がPerlを分かっておらず,せっかくのご好意で ソースを書いて頂いても無駄になってしまうかもしれないので、ご遠慮させて頂きます。 2.について   1)はい   2)はい   3)はい 3.について   間違いなしです.   サーバでライセンスを牛耳っているので、   ユーザーが使うとサーバから出す(OUT)と   なっているようです。 どうも、ありがとうございました。

  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.1

OSが提示されると良い回答が得られると思います。 (但し、私が回答できる訳ではありません)OSは何でしょうか?

WAKABA_PAPA
質問者

補足

OSはWindows2000になります. 宜しくお願い致します.

関連するQ&A