- ベストアンサー
MsDosでファイル名とファイル内の文字列の検索
リナックスコマンドでいうところの find -name xxxx -exec grep $test {} \;の処理を コマンドプロンプトにて、利用したいと考えています。 dir xxxx /s /b | find "$test" こういった記述で出来るのではないかと考えたのですが。 findが"ファイル名"を検索するためファイルの中身を検索してくれません。 何かいい方法は御座いませんか? また、dirで取得したパスを配列に入れて、foreachでファイルの中身を検索し続けるということは可能でしょうか? よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
dosコマンドは文字列操作に向いていないので、他のスクリプトを検討することを勧めます。 敢えてというなら、下記はいかがでしょうか。似たことができます。 type <ファイル名> | findstr foreachの代わりは下記 for %i ~ do dirでリストし、forで回し、typeで中身を表示、findstrで文字列を検索。
その他の回答 (2)
- localica
- ベストアンサー率52% (202/385)
回答No.3
>dirで検索した内容は、どこの変数にしまわれるのでしょうか? setで変数に格納する。 あまりわかっていないのなら、リダイレクトでファイルに書きだして使い回すとデバッグし易い。 >forの%iの使い方がよく分からず困ってまいます。 /? オプションでコマンドを調べることは必須。
質問者
お礼
なるほどsetで変数に格納出来るんですね。 有難う御座います。
- wormhole
- ベストアンサー率28% (1626/5665)
回答No.2
cygwin使うというのはどうでしょう
質問者
お礼
こういうソフトがあったんですね。 これならリナックス環境で開発するように開発がが出来そうですね。 ありがとう御座います。
お礼
回答有難う御座います。 リナックスでの開発になれてきたのはいいのですが 今度はウィンドウズの開発で若干支障がありまして。 何とか検索だけでもウィンドウズ上でも行いたいと考えているんです。 dirで検索した内容は、どこの変数にしまわれるのでしょうか? forの%iの使い方がよく分からず困ってまいます。