ファイルやコマンドの出力を画面単位で区切って表示(MORE)

MORE コマンドを使用するとファイルやコマンドの出力が非常に長い場合にスクロールさせずに画面単位でいったん区切って表示することができます。ここではコマンドプロンプトにおける MORE コマンドの使い方について解説します。

(Last modified: )

MOREコマンドの使い方

MORE コマンドはリダイレクトやパイプによって標準入力から入力されたデータを画面単位で区切って標準出力へ出力します。非常に長いデータを一気にコマンドプロンプトへ出力すると画面がどんどんスクロールしてしまいます。MORE コマンドを使用することで1画面に表示できるだけの情報を表示し、キー押す事によって続きの内容を順に見ることができます。

※リダイレクトやパイプについては「リダイレクトとパイプ」を参照して下さい。

MORE コマンドの書式は3つあります。リダイレクトを使用する場合の書式は次の通りです。

MORE [/E [/C] [/P] [/S] [/Tn] [+n]] < [ドライブ:][パス]ファイル名

「/E」オプションを付けて拡張機能を有効にした場合は次のようにファイルを記述することもできます。

MORE /E [/C] [/P] [/S] [/Tn] [+n] [ファイル]

パイプを使用する場合の書式は次の通りです。

コマンド名 | MORE [/E [/C] [/P] [/S] [/Tn] [+n]]

それぞれ確認していきます。

リダイレクトを使ってファイルの内容を画面毎に表示する

MORE コマンドに対してリダイレクトを使って標準入力の入力先としてファイルを指定すると、ファイルの内容を画面毎に表示することができます。例えばカレントディレクトリにある memo.txt を画面毎に表示するには次のように実行します。

more < memo.txt

リダイレクトを使ってファイルの内容を画面毎に表示する(1)

MORE コマンドを実行すると、memo.txt の内容をまず 1 画面分だけ表示して停止します。

リダイレクトを使ってファイルの内容を画面毎に表示する(2)

[Enter] キーを押すと、次の 1 行が表示されます。

リダイレクトを使ってファイルの内容を画面毎に表示する(3)

繰り返し [Enter] キーを押していくと、順にファイルの内容を表示します。最後まで表示すると終わりになります。

リダイレクトを使ってファイルの内容を画面毎に表示する(4)

-- --

また MORE コマンドを実行し、 1 画面分を表示したあとで [Enter] キーではなく [Space] キーを押すと次の 1 画面分を表示することができます。

リダイレクトを使ってファイルの内容を画面毎に表示する(5)

リダイレクトを使ってファイルの内容を画面毎に表示する(6)

このように MORE コマンドを使用することで、長い文章が記述されたテキストファイルを表示する時に、いったん最初の画面で表示できる分だけを表示し、そのあとは順に 1 行ずつまたは 1 画面分ずつ見ていくことができます。

パイプを使ってコマンドの実行結果を画面毎に表示する

MORE コマンドに対してパイプを使い、別のコマンドの実行結果を MORE コマンドの標準入力の入力先とし指定すると、コマンドの実行結果を画面毎に表示することができます。例えば TREE コマンドを使い、ディレクトリやファイルの情報を画面に出力するときに画面毎に表示するには次のように実行します。

tree /F | more

パイプを使ってコマンドの実行結果を画面毎に表示する(1)

MORE コマンドを実行すると、 TREE コマンドによって画面に出力されたファイルやディレクトリの情報をまず 1 画面分だけ表示して停止します。

リダイレクトを使ってファイルの内容を画面毎に表示する(2)

[Enter] キーを押すと、次の 1 行が表示されます。

リダイレクトを使ってファイルの内容を画面毎に表示する(3)

繰り返し [Enter] キーを押していくと、順に実行結果の内容を表示します。最後まで表示すると終わりになります。

リダイレクトを使ってファイルの内容を画面毎に表示する(4)

[Enter] キーではなく [Space] キーを押すと次の 1 画面分が表示される点は MORE コマンドにリダイレクトでファイルの内容を渡した場合とと同じです。

このように MORE コマンドとパイプを組み合わせることで、コマンドの実行結果をいったん最初の画面で表示できる分だけを表示し、そのあとは順に 1 行ずつまたは 1 画面分ずつ見ていくことができます。

拡張機能が有効な時のキー操作について

MORE コマンドを実行する時に「/E」オプションを指定して拡張機能を有効にすると、 1 画面分の表示をして止まった時に次のキー操作を行うことができます。

P n 次の n 行を表示します
S n 次の n 行をスキップします
F 次のファイルを表示します
Q 終了します
= 行番号を表示します
? ヘルプを表示します
<space> 次ページを表示します
<ret> 次の行を表示します

では実際に試してみます。MORE コマンドを実行する時に「/E」オプションをつけて実行してください。

more /e memo.txt

拡張機能が有効な時のキー操作について(1)

1 画面分表示して止まります。このときファイル全体のどの部分まで表示されたのかをパーセンテージで表示します。

拡張機能が有効な時のキー操作について(2)

「=」 キーを押すと現在の表示している最後の行の行数が表示されます。

拡張機能が有効な時のキー操作について(3)

[p] キーを押すと「行数」と表示されるので数値を入力して [Enter] キーを押すと、入力した数値の行数の分だけ表示されます。例えば下記では 5 と入力して [Enter] キーを押しているので、次の 5 行分を表示します。

拡張機能が有効な時のキー操作について(4)

拡張機能が有効な時のキー操作について(5)

このように拡張機能を有効にすることで、画面にファイルのどの部分を表示するのかについてもう少し細かく制御することができます。

指定した行数から表示する

MORE コマンドを使うときに、「/E」オプションを付けて拡張機能を有効にした上で「+n」オプションを付けることで、指定した行数分をスキップし、その次の行から画面に表示することができます。

例えば TYPE コマンドを使いカレントディレクトリにある memo.txt の内容を表示する時に、最初の 5 行分をスキップし 6 行目から表示を開始するには次のように実行します。

type memo.txt | more /e +5

指定した行数から表示する(1)

ファイルの最初からではなく 6 行目から 1 画面分ファイルの内容が表示されました。

指定した行数から表示する(2)

-- --

MORE コマンドを使ってファイルの内容を出力するときやコマンドの実行結果を画面に表示する時に1画面毎に表示する方法について解説しました。

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。