findstr で様々な検索を実現するサンプルコマンド集

findstr で文字を検索するサンプルです

バッチ

dir c:\ の結果をパイプで受け取り、Windows という文字が含まれる行を表示します。-i オプションにより大文字、小文字区別なく検索します。

サンプル:


dir c:\ | findstr -i Windows

実行例:




c:\>dir c:\ | findstr -i Windows
2018/10/19 22:05 <DIR> Windows


テキストファイルを出力しその結果から検索します。
以下のコマンドと結果は同じです。

C:\findstr -i apple c:\temp\test.txt

サンプル:


type c:\temp\test.txt |findstr -i apple

実行例:




c:\>type c:\temp\test.txt | findstr -i apple
this is an apple



【OR】
検索の OR 条件です。ダブルクォートでくくり、半角スペースで OR を表現することが可能です。

サンプル:


findstr -i "apple orange" c:\temp\test.txt

実行例:




c:\>findstr -i "apple orange" c:\temp\test.txt
apple
orange


【AND】
検索文字の AND 条件です。findstr は AND オプションは無いのでパイプを接続して実現します。以下のサンプルは3つのコマンドをパイプで?げて pen と not  という文字で AND で検索しています。

サンプル:


type c:\temp\test.txt | findstr -i pen | findstr -i not

実行例:




c:\>type c:\temp\test.txt | findstr -i pen | findstr -i not
this is not a pen



【否定】
/v で指定した文字を含まない検索が可能です。以下の例では grape という文字を含まない行を出力します。

サンプル:


findstr /v grape c:\temp\test.txt 

実行例:




c:\>findstr /v grape c:\temp\test.txt
apple
orange


ドライバの一覧から "Processor"という文字列を検索しています。

サンプル:


driverquery | findstr -i Processor

実行例:




c:\>driverquery | findstr -i Processor
AmdK8 AMD K8 Processor Drive Kernel 1988/02/15 23:27:43
AmdPPM AMD Processor Driver Kernel 1999/01/16 3:10:05
intelppm Intel Processor Driver Kernel
Processor プロセッサ ドライバー Kernel



標準出力の行数をカウントする方法を紹介します。Windowsバッチには行数をカウントする機能はありません。ただし find コマンドをトリッキーに使用して実現することは可能です。(findstr ではなく find コマンドを指標しています。)

find の /v オプションは "指定した文字を含まない" で検索文字を空にすると結果として、「何か文字がある行をカウントする」ということになります。

以下の例では指定したフォルダのファイルとサブフォルダの数をカウントしています。(Linux の wc -l のような機能) dir /b は名前の一覧のみ出力するオプションです。この出力結果の行数をカウントすることにより数をカウントしています。

サンプル:


dir /b C:\Users\username | find /c /v ""

実行例:




c:\>dir /b C:\Users\username | find /c /v ""
19


テキストファイルから特定の文字が含まれる行を削除するサンプルコードです。/V オプションで指定した文字が含まれれない行のみ出力します。結果として特定の文字が除外された行のみ出力されています。結果はリダイレクト機能によりファイルに出力しています。

findstr /V "DeleteMeString" <削除元ファイル> > <削除先ファイル>

***** from.txt *****
one
two
three
four
five
six
seven
eight
nine
ten

サンプル:




findstr /V "four" c:\temp\from.txt > c:\temp\to.txt
cat c:\temp\to.txt

実行例:



c:\>findstr /V "four" c:\temp\from.txt 1>c:\temp\to.txt

c:\>cat c:\temp\to.txt
one
two
three
five
six
seven
eight
nine
ten



コマンドサンプル一覧