• ベストアンサー

MsDosでファイル名とファイル内の文字列の検索

リナックスコマンドでいうところの find -name xxxx -exec grep $test {} \;の処理を コマンドプロンプトにて、利用したいと考えています。 dir xxxx /s /b | find "$test" こういった記述で出来るのではないかと考えたのですが。 findが"ファイル名"を検索するためファイルの中身を検索してくれません。 何かいい方法は御座いませんか? また、dirで取得したパスを配列に入れて、foreachでファイルの中身を検索し続けるということは可能でしょうか? よろしくお願いいたします。

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

  • ベストアンサー
  • localica
  • ベストアンサー率52% (202/385)
回答No.1

dosコマンドは文字列操作に向いていないので、他のスクリプトを検討することを勧めます。 敢えてというなら、下記はいかがでしょうか。似たことができます。 type <ファイル名> | findstr foreachの代わりは下記 for %i ~ do dirでリストし、forで回し、typeで中身を表示、findstrで文字列を検索。

koizumi131
質問者

お礼

回答有難う御座います。 リナックスでの開発になれてきたのはいいのですが 今度はウィンドウズの開発で若干支障がありまして。 何とか検索だけでもウィンドウズ上でも行いたいと考えているんです。 dirで検索した内容は、どこの変数にしまわれるのでしょうか? forの%iの使い方がよく分からず困ってまいます。

その他の回答 (2)

  • localica
  • ベストアンサー率52% (202/385)
回答No.3

>dirで検索した内容は、どこの変数にしまわれるのでしょうか? setで変数に格納する。 あまりわかっていないのなら、リダイレクトでファイルに書きだして使い回すとデバッグし易い。 >forの%iの使い方がよく分からず困ってまいます。 /? オプションでコマンドを調べることは必須。

koizumi131
質問者

お礼

なるほどsetで変数に格納出来るんですね。 有難う御座います。

  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.2

cygwin使うというのはどうでしょう

koizumi131
質問者

お礼

こういうソフトがあったんですね。 これならリナックス環境で開発するように開発がが出来そうですね。 ありがとう御座います。

関連するQ&A