thumbnail 一問一答の一歩

Windowsでgrepコマンド│パイプの後ろでも利用出来るようにする方法

本ページは以下のの構成で説明を行う

1前提知識の確認

1-1GREP文とは

1-2│(パイプとは)

2直面した問題点

3バッチファイルの作成

1前提知識の確認

○grep文とは

LinuxというOSで使われている指定された範囲から該当の文字列を検索する関数であり、以下のような形で使用される

Grep "検索文字列" 引数

○黒い画面における│(パイプ記号)

パイプ曲線は黒い画面での命令を一度に複数実行することが出来る記号である。

例えば、以下のような形で使われる。

フォルダの移動│フォルダ内のファイルの一覧の表示

現在使用しているアプリケーションの表示│確認したいアプリを検索

2直面した問題点

Windowsコマンドのfindstrを使えば手っ取り早いのだが、コマンドの利用に関してはlinuxコマンドで統一して覚えた方が効率がいいので、grepで実行出来る方法について探してみた。

Grepを使おうとした状況として、Windowsで現在稼働しているプロセスを確認したくなり、前提条件の例で挙げた以下の命令文をコマンドプロンプトで実行しようとした。

現在使用しているアプリケーションの表示│確認したいアプリを検索
::"上記を具体的にすると以下の通り"
tasklist│ grep “検索したい文字列”

上記のコマンドを実行してみたのだが、│の後に記載したgrepをコマンドプロンプトの関数として認識してくれない。

DosKeyを用いて以下の命令を実行後に行ってもだめだった。

doskey grep = findstr

再起動を試してみても解決せず、調べても同じ問題に関する情報がなかったのでこの場で共有する。

3バッチファイルの作成

結論から述べると、バッチファイルを作成し、パスを通すことで解決方法した。

バッチファイルとはWindowsのコマンドを指定した順番にまとめて実行してくれる便利なツ-ルであり、以下のような流れで作成することが出来る。

3-1テキストファイルを作成する

テキストファイルはgrep文を実行出来るようにしたいので、grep.txtを最初に作成する。

3-2テキストファイルの中身を編集する

以下のように作成すればよい。

@echo off
findstr %1

3-3拡張子をbatに変更する

3-4パスを通す

あとは作成したgrep.batを実行すればgrepコマンドをコマンドプロンプトでも実行できるようになっているはずであるが、実行するにはいちいちgrep.batが存在するファイルに移動する必要がある。

これではgrepコマンドを実行するにはあまりにも不便なので、どのファイルにいようがgrepコマンドを実行できるようにgrep.batのあるパスを通す必要がある。

パスの通し方については以下のリンク先のサイトに分かりやすい説明があったので参考にするとよい。

PCコマンドの問題ページに戻る