Windowsコマンドプロンプトでフォルダ配下の全ファイル内の文字列検索を行うコマンド

便利なコマンドがあったので備忘録として残しておきます。

 

参考元

Windowsコマンドプロンプトでフォルダ配下の全ファイル内の文字列検索を行うコマンド: beraノート (seesaa.net)

 

ここで紹介されているコマンドは

for /f "usebackq" %i in (`dir /a-d /s /b 検索対象パス`) do find /i "検索文字列" %i

です。

今回はファイル内に特定の文字列が含まれているファイル名が欲しかったため

for /f "usebackq" %i in (`dir /a-d /s /b 検索対象パス`) do findstr /i /m "検索文字列" %i

findをfindstrに変更しオプションの/mを追加したものを使用しました。

 

検索対象パスは検索を行いたいフォルダをエクスプローラーからshift +右クリックでメニューを開いてパスを取得するを選択します。

 

コマンドプロンプトの開き方は

①windoes + R

②開いたテキストボックスの中にcmdと入力を行う

③enter

 

cls 画面をクリアできます。

クリアしてからコマンドを入力するとctrl+Aを使用しやすいです。

 

実際に使用すると

C:指定フォルダ>findstr /i /M ”検索文字列" 指定フォルダ以内のファイル

というコマンドが指定フォルダ内のすべとのファイルに実行されます。

実際にヒットした文字列があると

C:文字列が見つかったファイルの名前

が表示され次のファイルに移っていきます。

 

実際にその文字列がどのように入っているかどうかは参考元のコマンドを使用するとわかりやすいです。

 

あとは、検索結果をすべてコピーしてエクセルやメモ帳で不必要な情報を削っていきました。

 

疑問点

・エクセルのファイル内検索はできるのだろうか?

→できなくもなさそうだけどプログラムが長い。

参考元

ディレクトリ内EXCELファイル内容の一括検索: 脳外記憶装置 (cocolog-nifty.com)

エクスプローラ内から検索できなくもなさそう

→あまたの人が複数のエクセル内文字の検索に挑戦しているようである。

 

なんかテキストに出力できるぽい

参考元

任意の文字列を含むファイルを検索する方法(Windows) | 合同会社スマート (smartllc.jp)

findstr /s /i "test" *.* > findstr.txt