テキストファイルに含まれる単語をカウント(集計)するバッチ

人力検索はてなより単語の出現回数を集計したいという質問。

question:1243306258

一行ごとにひとつの単語、または複数の単語が並んでいるテキストファイルがあります。
このテキストの中に含まれる単語を何らかの方法で集計し

リンゴ
イカ
カモメ
メダカ
カモメ
メジロ
ロジック
クリスマス
イカ カジキ
キンメダイ
イカ カモメ
メダカ
カジキ

リンゴ→1
イカ→1
カモメ→2
メダカ→2
メジロ→1
ロジック→1
クリスマス→1
イカ カジキ→1
キンメダイ→1
イカ カモメ→1
カジキ→1

というふうに、同じ単語が何個あったのかを把握したいと考えています。

ただしこれを実現する際の必須条件として、
「リンゴ」や「スイカ」など、こちらでひとつづつ単語を指定して集計することなく、
自動的に同じ単語を集計し、一覧として出力出来るものであって下さい。

なお可能であれば
・出力される結果は同じ単語が多い順に並べる。
・「スイカ カジキ」というスペースで区切られた単語を「スイカ」「カジキ」と個別の単語として認識し集計する。
などが出来ればうれしいです。

こちらの環境はOS:Vista、エクセル所有、レンタルサーバcoreserverが使えます。
結果が出力される形式は問いませんが、あまり複雑な手順でないことを望んでおります。


みなさんの回答では、

などがありました。

私の作ったバッチは次の通り。以前のエントリーで照会した環境変数連想配列的に使う(http://d.hatena.ne.jp/jak-san/20090308/1236501217)方法でカウント値を保持し、連想配列を取り出すのに set コマンドをfor /f で読み込む方法を使っています。

バッチファイルでも出来ますよ。締め切りに間に合わなくて残念。
list.txt が対象となるテキストファイルとします。


echo off
:------------------------------------------------------------ sample.bat
for /F "delims=" %%a in (list.txt) do call :sub %%a
for /F "tokens=2,3 delims=[]=" %%a in ('set count[') do echo %%a→%%b
exit /b

:sub
if "%1"=="" goto :EOF
set /a count[%1] += 1
shift
goto sub


結果をファイルに残すなら、sample.bat>kekka.txt とすればファイルに残ります。
echo %%a→%%b を echo %%a,%%b とすれば csv 形式になります。


締め切りに間に合わなくてコメントで回答しましたが、ポイント送信していただきました!id:matukoi さんありがとうございました。