Windowsコマンド1発!ディレクトリのをツリー構造を一瞬で出力する方法

IT系知識

はじめに

さて今回は、指定したディレクトリのツリー構造をコマンドプロンプトで出力させる方法についてまとめたいと思います。

ツリー構造とは、ディレクトリ構成(フォルダ構成)を木の形で表したものです。

ディレクトリって何?という方は、ひとまず「ディレクトリ 」=「フォルダ」と覚えておいてください。

C:\TEST1
│  excel1-1.xlsx
│  excel1-2.xlsx
│  ppt1-1.pptx
│  
├─test2
│  │  excel2-1.xlsx
│  │  excel2-2.xlsx
│  │  ppt2-1.pptx
│  │  
│  └─test2_sub
└─test3
    │  excel3-1.xlsx
    │  excel3-2.xlsx
    │  ppt3-1.pptx
    │  
    └─test3_sub

↑こんな感じのやつですね。一度は見たことあるのではないでしょうか?

どのディレクトリにどんなファイルがあるのか、さらにその配下にはどのようなサブディレクトリがあるのかなどをツリー構造でまとめた表したものですね。

正直、作るの自体は難しくないはずです。パワープレイをするならば、1つ1つフォルダを開いて、ファイル名をコピーして、線で繋げばいいわけですから・・・ただ、そんな面倒なことしていられないですよね?コマンドプロンプトを使えば一発で出力できるのでこの機会に覚えておきましょう。

※今回の記事では、上記で表示したツリー構造を例に説明をしていきます。

手順

1. コマンドプロンプトを立ち上げる

まずはコマンドプロンプトを立ち上げましょう。主な方法を2つ挙げておきます。

  • Windowsの検索窓で「コマンドプロンプト」と検索して立ち上げる
  • 「Windowsボタン」+「R」を押下し、”cmd”と打ち込んだ後、OKを押下する

立ち上げ方が分からない方は上記のどちらかを試してみてください。どちらでもOKです。

2. コマンドを打ち込む

コマンドプロンプトが立ち上がったら、以下のコマンドを打ち込みましょう

tree {ツリー構造を取得したいディレクトリのパス}

例えば、「C:\test1」というディレクトリ配下のツリー構造を取得したければ、以下のように打ち込みます。

tree C:\test1

※以下でもOK
tree "C:\test1"

======
以下はコマンドの出力結果
======

フォルダー パスの一覧:  ボリューム Windows
ボリューム シリアル番号は 9045-F72F です
C:\TEST1
├─test2
│  └─test2_sub
└─test3
    └─test3_sub

ディレクトリのパス(「C:\test1」←これのこと)が分からない場合は、エクスプローラーを立ち上げて取得できます。

パターン①:対象のディレクトリを開き、エクスプローラー上部のパスをコピー

パターン②:対象のディレクトリを右クリックしパスのコピー or 「Ctrl」+「Shift」+「C」

ちなみに、上記の方法ですと、ディレクトリ配下にあるフォルダのツリー構造しか出力してくれません。よく使うのは、冒頭の例に示したようなファイル名も含んだツリー構造ではないでしょうか?やり方は簡単なので覚えておきましょう。以下コマンドを打ち込んでください。

tree {ツリー構造を取得したいディレクトリのパス} /f

この「/f」というオプションが”ファイルも表示させる”ものになります。デフォルト(何も指定しないと)はフォルダのみ出力するような設定になっているので、ファイルも表示させたい場合は「/f」を忘れないようにしましょう。

以下例です。

tree C:\test1 /f

======
以下はコマンドの出力結果
======

フォルダー パスの一覧:  ボリューム Windows
ボリューム シリアル番号は 9045-F72F です
C:\TEST1
│  excel1-1.xlsx
│  excel1-2.xlsx
│  ppt1-1.pptx
│  
├─test2
│  │  excel2-1.xlsx
│  │  excel2-2.xlsx
│  │  ppt2-1.pptx
│  │  
│  └─test2_sub
└─test3
    │  excel3-1.xlsx
    │  excel3-2.xlsx
    │  ppt3-1.pptx
    │  
    └─test3_sub

おまけ

出力した罫線が文字化けした場合

Windows環境によっては罫線が文字化けすることもあるそうです。その場合は、「/a」のオプションを付け加えてください。これは”ASCII文字で表示”という意味があるそうです。

tree {ツリー構造を取得したいディレクトリのパス} /f /a

以下例です。

tree C:\test1 /f /a

======
以下はコマンドの出力結果
======

フォルダー パスの一覧:  ボリューム Windows
ボリューム シリアル番号は 9045-F72F です
C:\TEST1
|   excel1-1.xlsx
|   excel1-2.xlsx
|   ppt1-1.pptx
|   
+---test2
|   |   excel2-1.xlsx
|   |   excel2-2.xlsx
|   |   ppt2-1.pptx
|   |   
|   \---test2_sub
\---test3
    |   excel3-1.xlsx
    |   excel3-2.xlsx
    |   ppt3-1.pptx
    |   
    \---test3_sub

実務で使うなら、「/a」を指定した方が良いかもしれませんね。どんな環境でも間違いなく綺麗に表示されるので安全です。少し見た目が古くてカッコ悪い??ですが・・・

出力結果をコピーしたい場合

出力結果をコピーしたい場合、出力した後にマウスで選択して「Ctrl」+「C」や右クリックでコピーでもOKですが、せっかくならもう少しスマートに実行したくないですか?

そんな時は、コマンドの最後に「| clip」を付け加えましょう

以下例です。

tree C:\test1 /f /a | clip

※上記コマンドを実行しても何も出力されませんが、クリップボードに保存されています。

こちらは実行しても何も出力されませんが、クリップボードにはちゃんと保存されるので、貼り付けたい場所に「Ctrl」+「V」や右クリックからの貼り付けでペーストしてあげましょう。

余談:「|」って何??

「|」は”パイプ”と呼ばれ、左側のコマンドの「出力結果」を右側のコマンドの「入力」に渡すという意味を持つようです。

すなわち、

tree C:\test1 /f | clip

のようにコマンドを入力した場合、意味としては

tree C:\test1 /f ー(結果を渡す)ー▶ clip

となるわけですね。

今回で言うと、

左右コマンド意味
左側のコマンドtree C:\test1 /fファイルも含めたディレクトリのツリー構造を出力する
右側のコマンドclip標準入力(受け取った内容)をクリップボードにコピーする

なので、左側のコマンドで出力したツリー構造を右側の入力として渡し、クリップボードにコピーしたという結果になります

ふむふむ・・・といった感じですよね、私も何となく使っていたので改めて勉強になりました。

もちろん「clip」は今回のコマンドだけでなく、どんなコマンドに対しても適用できます。ただ、「”標準入力(受け取った内容)”をクリップボードにコピーする」という性質上、何も入力が無いとコピーされません。

すなわち、左側のコマンドが特に何も出力しなければ、「| clip」を付けても何もコピーされないということですね。

最後に

さて今回は、指定したディレクトリのツリー構造をコマンドプロンプトで出力させる方法についてまとめました。

コマンドで指定するだけなのでとても簡単ですよね。実務で使う機会もあると思うので是非覚えておきましょう!

<フォルダだけのツリー構造を取得する場合>

tree {ツリー構造を取得したいディレクトリのパス}

<ファイルも含めたツリー構造を取得する場合>(よく使うので必須!!)

tree {ツリー構造を取得したいディレクトリのパス} /f

<罫線が文字化けした場合>

tree {ツリー構造を取得したいディレクトリのパス} /f /a

<出力結果のツリー構造をコピーしたい場合>

tree {ツリー構造を取得したいディレクトリのパス} /f | clip

本記事は以上になります。

他にも様々な勉強記事をあげていますので是非興味があればご覧ください!!

コメント

タイトルとURLをコピーしました