コピペの連続はつらいよ ファイルの一覧を文書に取り込む!―― dirコマンド/treeコマンド+clipコマンド:マウスのいらないコマンドプロンプトの世界
納品の際などにフォルダ名やファイル名の一覧をドキュメントとして載せたいような場合はないだろうか。このような場合、エクスプローラーでフォルダを開き、ファイル名を選択して、コピーして、テキストファイルに貼り付け、といった作業を繰り返していたのでは時間がいくらあっても足りない。ここはコマンドを使ってスマートに片付けよう。
面倒なのはファイル一覧の文書への取り込み
フォルダ名やファイル名の一覧を文書に取り込みたいというニーズは、日常の至る所に潜んでいる。典型的なのは、メールに添付したファイルの内訳をメール本文に記載したい場合だが、他にも部内ファイルサーバのフォルダ構成を社内マニュアルに記載したい、あるいはソフトウェア配布パッケージ作成時に「README.TXT」ファイルに配布内容を掲載しておきたいなど、職場や職種により、さまざまなシーンが考えられる。
さて、そこで今回のミッションだ。
【今回のミッション】
面倒な仕事は、必ず終業時刻の間際になって舞い込んでくる。
「お疲れさま。すまないが例のプロジェクトの主な関連資料を、デジアド商会の小寺さんに今日中にメールで送っておいてくれないか。ついでに送付するファイルの名前をメール本文に書き添えてくれると助かる」
ぐぬぬ、今日は、あと10分ほどで帰れたはずなのに。客先訪問中の上司からメールが届いてしまった。その「ついでに」以降が激しく時間がかかる面倒な作業なのだが……。
関連資料は30個近いファイルからなる。それらを集めて圧縮フォルダにまとめ、メールに添付するまではあっという間だ。
問題なのは添付した30個近いファイル名を、どうやってメール本文に書き添えるかだ。それだけの数のファイル名を、いちいちキーボードから入力していくのは正直言ってダル過ぎる。
さぁ、こんなときどうする?
フォルダ内のファイル一覧は、エクスプローラーで簡単に閲覧できる。ここからファイル名を文書に取り込むとすれば、1つずつファイルを選択し、コピー&ペーストすることになるだろう。しかし、ファイル数が多いと、この作業はとても煩わしいものになる。
![エクスプローラーからファイル一覧を文書に取り込むのはツラい](https://image.itmedia.co.jp/ait/articles/2012/24/wi-startcmd02_02.png)
エクスプローラーからファイル一覧を文書に取り込むのはツラい
エクスプローラー上でファイルを選び、ファイル名を(クリップボードに)コピーして、メールの文書に(クリップボードから)ペーストする。この方法だと、ファイルの数だけエクスプローラーとメールアプリの間を往復しなければならない。
ここで、マウスのいらないコマンドプロンプトの世界「さらば非人間的単純作業 膨大な数のファイル名を一発変換 ―― renameコマンド」で紹介したdirコマンドの出力をコピー&ペーストすればよいのでは? と考えるかもしれない。なるほど、確かにこれならファイル名を一括選択できるので作業がはかどるかもしれない。
しかし、出力結果が何画面にもわたって表示されるような場合は、範囲選択をしながら画面をスクロールさせるか、何回かに分けてコピー&ペーストをしなければならない。ファイル数によっては、やはり煩わしい作業になってしまうこともある。
![dirの出力をコピー&ペーストするのは便利だがファイル数が多いときはNG](https://image.itmedia.co.jp/ait/articles/2012/24/wi-startcmd02_03.png)
dirの出力をコピー&ペーストするのは便利だがファイル数が多いときはNG
画面におさまりきらない数のファイルがある場合、範囲選択しながら画面をスクロールさせるか、何回かに分けてコピー&ペーストしなければならない。
そこで紹介するのが今回のコマンド技だ。この方法なら、ファイルが幾つあろうとも作業の手数は変わらない。たとえファイルが数千個、数万個あったとしてもだ。
dirコマンドとclipコマンドの連携で快適に解決!
今回のミッションを解決するには、dirコマンドとclipコマンドを連携させて、次のように入力する。
dir /b | clip [Ener]
上記のコマンドを実行すると、dirコマンドの出力結果がクリップボードに保存されるので、その後、メールアプリの本文にペーストすればよい。
![dirコマンドとclipコマンドの連携(1)](https://image.itmedia.co.jp/ait/articles/2012/24/wi-startcmd02_04.png)
dirコマンドとclipコマンドの連携(1)
例によってコマンドプロンプトを起動し、目的のフォルダに移動するのだが、今回はそのお手軽な方法を後述するのでお楽しみに。clipコマンドの左にある「|」はバーチカルバーと呼ばれる記号で、日本語キーボードなら[Shift]+[\]キーで、英語キーボードなら[Shift]+[\(半角バックスラッシュ)]で入力できる。
![dirコマンドとclipコマンドの連携(2)](https://image.itmedia.co.jp/ait/articles/2012/24/wi-startcmd02_05.png)
dirコマンドとclipコマンドの連携(2)
コマンドプロンプト上では何も表示されないが、dirコマンドの出力はクリップボードに保存されている。メールソフトの挿入したい部分にマウスカーソルを移動し、[Ctrl]+[V]キーで貼り付けてみよう。
ちなみに、dirコマンドの後ろに指定している「/b」は、シンプルにファイル名のみを表示するというオプションだ。余計な情報が表示されないので、こうした二次的な利用に重宝する。
複数のコマンドを連携させるパイプライン処理
この「|」を使ったコマンドの連携は「パイプライン処理」と呼ばれ、左側のコマンドの出力データを右側のコマンドの入力データとして受け渡すものだ。そのため「|」の右側には、何らかのデータを受け取って処理するタイプのコマンドを記述するのが正しい使い方だ。
今回使用したclipコマンドは、入力されたデータをクリップボードに保存するという機能を持つ。つまり、clipコマンドの連携相手はdirコマンドでなくてもよい。
例えば、Windows OSには、階層化されたフォルダ構造をツリー(樹形図)形式で表示するtreeコマンドというものが用意されている。
tree <フォルダパス> [Enter]
これを実行すると「<フォルダパス>」以下のフォルダ構成を表示してくれる。フォルダパスは、マウスのいらないコマンドプロンプトの世界「さらば非人間的単純作業 膨大な数のファイル名を一発変換 ―― renameコマンド」でchdirコマンドを紹介したときのように、エクスプローラーで目的のフォルダを開き、アドレスバー左のアイコンをコマンドプロンプトウィンドウにドラッグ&ドロップすることで入力できる。なお、フォルダパスを省略するとカレントフォルダ(いまコマンドプロンプトで開いているフォルダ)以下のツリーが表示される。
treeコマンドは、ネットワークドライブのフォルダツリーも表示できるため、ファイルサーバのフォルダ構成を社内マニュアルに記載したいといった場合にも、利用できる。
![treeコマンドでネットワークドライブのフォルダ構造を表示させる(1)](https://image.itmedia.co.jp/ait/articles/2012/24/wi-startcmd02_07.png)
treeコマンドでネットワークドライブのフォルダ構造を表示させる(1)
コマンドプロンプトではネットワークドライブ上のフォルダをカレントドライブにすることができない。そこでコマンド引数のフォルダパスとして指定する。コマンドプロンプト上で、「tree 」まで入力し、エクスプローラーでネットワークドライブの目的のフォルダを開き、パスをコマンドプロンプトにドラッグ&ドロップする。
![treeコマンドでネットワークドライブのフォルダ構造を表示させる(2)](https://image.itmedia.co.jp/ait/articles/2012/24/wi-startcmd02_08.png)
treeコマンドでネットワークドライブのフォルダ構造を表示させる(2)
「tree 」の後にネットワークドライブのフォルダパスが入力されるので、[Enter]キーを押す。ネットワークドライブのフォルダ下のフォルダ構造がツリー形式で表示される。
つまり、フォルダ構成を文書に取り込みたければ、clipコマンドと連携させて、次のようにコマンドを実行すればよい。
tree <フォルダパス> | clip [Enter]
今回はdirとclip、treeとclipのように2つのコマンドを連携させたが、パイプライン処理では、3つ、4つ……と、組み合わせ次第で幾つものコマンドを連携させることが可能だ。多段パイプ処理の例は、また別の機会に紹介しよう。
最初から目的のフォルダをカレントフォルダにして起動する
ところで、コマンドプロンプトの起動について豆知識を紹介しておく。マウスのいらないコマンドプロンプトの世界「さらば非人間的単純作業 膨大な数のファイル名を一発変換 ―― renameコマンド」ではコマンドプロンプトの基本的な起動方法を紹介したが、いちいち[スタート]メニューから起動するのが面倒くさいという声もあった。そこで今回は、より実用的な、[スタート]メニューを使わず、しかも「最初から目的のフォルダをカレントフォルダにして起動する」という超便利技を紹介する。
エクスプローラーで目的のフォルダに移動しておき、アドレスバーに次のように入力する。
cmd [Enter]
![最初から目的のフォルダに移動した状態でコマンドプロンプトを起動する](https://image.itmedia.co.jp/ait/articles/2012/24/wi-startcmd02_09.png)
最初から目的のフォルダに移動した状態でコマンドプロンプトを起動する
エクスプローラーで目的のフォルダを開き、アドレスバーに「cmd [Enter]」と入力すると、エクスプローラーで開いているフォルダがカレントフォルダになった状態でコマンドプロンプトが起動する。
こちらの方が手数も少なくて済むので、以降はぜひ活用してほしい。
今回紹介したコマンド
dir、clip、tree、cmd、|(パイプライン処理)
Copyright© Digital Advantage Corp. All Rights Reserved.