- ベストアンサー
検索
こんにちは。 特定のフォルダに入ってくる、ファイルの内容を読み取り、その中にある文字列が入っていた場合そのファイルを削除(移動でも可)するプログラムを組みたいと考えています。 今現在は、Windowsの検索機能を使い、ヒットしたファイルを削除しています。(手動です。) VBであれば、LineInputして文字列検索して、ヒットすればファイルを削除、無ければそのままと言った ものをタイマー・もしくはタスクスケジューラーを利用して自動化しようというイメージを持っています。 でも理想なのはVBで組んだりしないで、コマンドライン(バッチ)で出来れば、タスクスケジューラで楽チンだなぁと思っていたんですが、可能なんでしょうか? ファイルの中の文字列を検索するコマンドってないですよね? 何かヒントなりお願いします。 w2k pro vb6
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
バッチファイルを作るとしたらこんな感じでしょうか? @echo off cd 処理対象フォルダ for %%F in (*.txt) do ( find "mojiretsu" %%F >NUL && del %%F ) 検索内容によってはfindでなくfindstrの方がいいかも。find /? と findstr /? を見比べてください。
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
私は素人に近いですが、そのソフトを使って表示すると文字列に見えるものでも、テキストファイルの文字列と、ワードの中の文字列とはディスクに保存されている、ファイル形式が違い、そう簡単に文字列語句を探せないと思います。あるソフトのファイル形式の具体的なレイアウトフォームやコードの意味を部外者が知るのはそれほど簡単ではないはず。それでそんなに簡単には行かないのではと申し上げたい。識者のご批判を待つ。テキストだけのファイルとは断ってないので。メモ帳のファイルや、CSVファイルのようなものなら杞憂ですが。
補足
ありがとうございます。そうですね、またまた情報不足でした。申し訳ないです。 スキャンするファイルは、テキストエディタで内容を表示する事が可能なファイルです。
- tsukasa-12r
- ベストアンサー率65% (358/549)
>ファイルの中の文字列を検索するコマンドってないですよね? Windows に標準で入っている FIND.EXE というのがあります。 が、これは、対象のファイルは指定しないとダメです。*.TXT ファイルを検索して、見つかったファイルに対して FIND.EXE を実行する、というようなことをするには、何か別のコマンドラインツールが必要だと思います。(昔、C で作ったことあります。)
お礼
ありがとうございます。少し前進しました。 あとはどのように使うか考えてみます。
お礼
サブフォルダも検索したいのでスイッチをつけてはみましたが(/s)駄目でした。 こういうのって何と言う語句でググればいいんですか? 情報が多すぎて、どれが自分が求めているものか・・ ちょっと頑張ってみます。ありがとうございました。
補足
for の方に /R をつけたら思うように行きました。 本当にありがとうございます。助かりました。