• ベストアンサー

検索

こんにちは。 特定のフォルダに入ってくる、ファイルの内容を読み取り、その中にある文字列が入っていた場合そのファイルを削除(移動でも可)するプログラムを組みたいと考えています。 今現在は、Windowsの検索機能を使い、ヒットしたファイルを削除しています。(手動です。) VBであれば、LineInputして文字列検索して、ヒットすればファイルを削除、無ければそのままと言った ものをタイマー・もしくはタスクスケジューラーを利用して自動化しようというイメージを持っています。 でも理想なのはVBで組んだりしないで、コマンドライン(バッチ)で出来れば、タスクスケジューラで楽チンだなぁと思っていたんですが、可能なんでしょうか? ファイルの中の文字列を検索するコマンドってないですよね? 何かヒントなりお願いします。 w2k pro vb6

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

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

バッチファイルを作るとしたらこんな感じでしょうか? @echo off cd 処理対象フォルダ for %%F in (*.txt) do ( find "mojiretsu" %%F >NUL && del %%F ) 検索内容によってはfindでなくfindstrの方がいいかも。find /? と findstr /? を見比べてください。

123daa
質問者

お礼

サブフォルダも検索したいのでスイッチをつけてはみましたが(/s)駄目でした。 こういうのって何と言う語句でググればいいんですか? 情報が多すぎて、どれが自分が求めているものか・・ ちょっと頑張ってみます。ありがとうございました。

123daa
質問者

補足

for の方に /R をつけたら思うように行きました。 本当にありがとうございます。助かりました。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

私は素人に近いですが、そのソフトを使って表示すると文字列に見えるものでも、テキストファイルの文字列と、ワードの中の文字列とはディスクに保存されている、ファイル形式が違い、そう簡単に文字列語句を探せないと思います。あるソフトのファイル形式の具体的なレイアウトフォームやコードの意味を部外者が知るのはそれほど簡単ではないはず。それでそんなに簡単には行かないのではと申し上げたい。識者のご批判を待つ。テキストだけのファイルとは断ってないので。メモ帳のファイルや、CSVファイルのようなものなら杞憂ですが。

123daa
質問者

補足

ありがとうございます。そうですね、またまた情報不足でした。申し訳ないです。 スキャンするファイルは、テキストエディタで内容を表示する事が可能なファイルです。

回答No.1

>ファイルの中の文字列を検索するコマンドってないですよね? Windows に標準で入っている FIND.EXE というのがあります。 が、これは、対象のファイルは指定しないとダメです。*.TXT ファイルを検索して、見つかったファイルに対して FIND.EXE を実行する、というようなことをするには、何か別のコマンドラインツールが必要だと思います。(昔、C で作ったことあります。)

123daa
質問者

お礼

ありがとうございます。少し前進しました。 あとはどのように使うか考えてみます。

関連するQ&A