「検索」コマンドは通常、ほとんどのニーズに適しています(「link検索コマンドの使用」というタイトルのヒントを参照)が、そのような場合により強力な「Findstr」コマンドもあります。特定の状況下で文字列を見つける必要がある場合。最も単純な形式では、FindstrはFindのようになります:

C:\> FINDSTR "document" Barry?.tmp

Findstrは、Findよりもいくつかのスイッチを受け入れます。次のように入力すると、完全なリストを表示できます。

C:\> FINDSTR /?

検索と

の出力の最初の違いに気付くでしょうFindstrは、後者が見つかった各行の前に、それが見つかったファイルの名前を付けることです:(図1を参照)

image

図1.Findstrは、見つかった文字列に沿ってファイル名を表示します。

Findstrで使用できるスイッチは12以上ありますが、それらすべてを実行する代わりに、Findコマンドの機能よりも重要な(imo)関数のいくつかを説明します。最初に言及するのは、複数の文字列を同時に検索できるということです。探している検索文字列にスペースが含まれている場合、Findstrはstring1 or string2 or string3などを検索すると想定します。たとえば、「document」または「text」のいずれかを含むすべての行を検索する場合は、単に区切ります。このようなスペースのある単語:

(図2を参照)

image

図2.2つの文字列を同時に検索する。

もう1つの優れた機能は、Findstrがサブディレクトリ内のファイルを検索できることです。

\ TempディレクトリにBarry1.tmpがあり、\ Temp \ Temp2ディレクトリにBarry2.tmpがあるとします。 \ Tempディレクトリから「/ S」を使用できます

Findstrにサブディレクトリを検索するように切り替えるように切り替えます。次のようになります:

(図3を参照)

image

図3./Sを使用してサブディレクトリを検索する。

私がお見せできる機能はもっとたくさんありますが、最後の機能には特別な注意が必要です。これが正規表現を使用した検索の概念です。 「正規表現の概要」については別のヒントで説明していますが、Findstrで正規表現を使用する方法を紹介したいと思います。

「ドキュメント」という単語を検索したいとしますが、コンマやピリオドなどの句読点が後に続くオカレンスのみを検索します。このタイプの検索の正規表現は「document [,.]」です。 「/ R」スイッチを指定して、検索文字列が正規表現を使用していることをFindstrに示し、「/ N」スイッチを追加して、行番号が表示されるようにします。最終的にはこれになります:(図4を参照)

image

図4.正規表現を使用した検索。

Findstrにはまだまだ多くのことがありますが、ファイル内の文字列を検索する必要があるときに、Findstrを使い始めるのに十分な食欲をそそったことを願っています。

このヒント(13505)は、Windows 7、8、および10に適用されます。