【バッチファイルの使い方(1)】フォルダにあるファイルの名前を一気にエクセルでリスト表示する

2019年8月31日

【バッチファイルの使い方(1)】フォルダにあるファイル名を一気にエクセルにリスト表示する

こんにちは。会計士KOです。

今回はバッチファイルの使い方について解説していきます。

バッチファイルに関する解説は初回ということもあり、

バッチファイルについてのギモン

バッチファイルとはなにか。
バッチファイルでなにが出来るのか。
バッチファイルをどうやってる作るのか。
バッチファイルの簡単な実例

を交えて解説していこうと思います。では、以下をご覧ください。

バッチファイルとはなにか。

そもそも、「バッチファイル」とは何でしょうか。まずはここから確認をしていきます。とりあえず、我らがウィキペディア先生に聞いてみましょう。

バッチファイルBatch File)とは、MS-DOSOS/2Windowsでのコマンドプロンプトシェル)に行わせたい命令列をテキストファイルに記述したもの。

Wikipediaより引用

ふーむ、またこれだけでは良く分かりません。

簡単に言ってしまえば、自動で多くの処理を実行してくれるファイルです。

ちょっとだけ詳しめに言うと、Windowsユーザーの方であれば一度は見たことがあるなんだか恐ろしい黒い画面、「コマンドプロンプト」に命令文を流すプログラミング言語をテキスト化したものです。

(コマンドプロンプト:検索画面に「cmd」と打てば出てきます。)

コマンドプロンプトでは、文字列でWindowsに対しての命令を行うことが出来ます。

これをCUI(Character User Interface)といいます。昨今のOSの基本となっているGUI(Graphical User Interface)とは異なりますね。

例えば、フォルダの移動や、ファイルやフォルダの作成、削除、リネーム等、普段、画面を見ながらマウスで右クリックで操作しているようなことは、基本的にコマンドプロンプト上でも実行することが可能です。ただし、CUIは、実行命令文を覚え、そしていちいち記載をしなければならないのが難点ですよね。そのため、視覚的に処理が出来るようになったのがGUIです。

一方、CUIの利点としては、この実行命令文を保存しておけるという点です。例えば、コマンドプロンプトにおける命令文を、テキストファイルに記述したものがバッチファイルであり、定型的な操作をテキストファイル化し保存しておくことで、いつでも簡単に規定された処理を実行することが出来ます。

以下にCUIとGUIの違い、メリット・デメリットを上げておきました。

バッチファイルで何が出来るのか?

大体何でもできます。

以上にも記載をしましたが、フォルダの移動や、ファイルやフォルダの作成、削除、リネーム等をプログラム化していつでも実行できるようにできます。

ただし、画面があることを前提とした画像や動画の編集などはできません。

出来ることが限られているように見えて、実は細かい点ながらも大幅な業務の効率化等が期待できます。今回の実例では、

フォルダにあるファイル名を全部取得して、CSVにリスト化する

というプログラムをたった一行で書いていきます。

バッチファイルをどうやって作るのか?

バッチファイルは簡単に作れます。

①メモ帳に命令文を書き、そして

②「.bat」ファイルという拡張子で保存するだけ

です。

試しにやってみましょう。

メモ帳に、

mkdir バッチファイルテスト

と記載して好きなフォルダに保存をしてください。

保存する際は「.txt」ファイルではなく、すべてのファイル形式で保存し、「.bat」拡張子をつけ保存して下さい。

そうすると、歯車の付いた以下のようなファイルが作成されます。

このファイルをダブルクリックすると、バッチファイルテストという名前のフォルダが自動的に作成されます。

これがCUI操作で、そしてバッチファイルです。

具体的には「mkdir 〇〇〇」という命令文が記載されていますが、これは「〇〇〇というフォルダを新しくつくってね」という意味です。

make directory」

の略と考えるとしっくりくるのではないでしょうか。命令文は正直その都度調べるか、ちょっとずつ覚えていくくらいでいいと思います。すべての操作が出来るわけではないですしね。

なんにせよイメージはこのような感じです。

今できたバッチファイルは、

「連打すれば、フォルダを勝手に作ってくれるボタンが出来た」

といった感じでしょうか。

では、今回はフォルダを作るだけではなく、ちょっとだけ実用的なものを作っていきましょう。

バッチファイルの簡単な実例

想定場面

今回はバッチファイルで、

とあるフォルダに存在するサブディレクトリ名やファイル名をすべて取得し、CSVに一覧化してくれるバッチファイル

を作っていきます。

筆者はたま~~~にそういう需要が湧くときがありますので、ちょっとニッチな想定であることをお許しくださいね。(なかったらごめんね。)

では、実際に作っていきましょう。

実際に作る(1)メモ帳を開く

では、まずメモ帳を開き、そして以下の命令文を打ち込んでください。

dir /b > failename.csv

実際に作る(2)テキストファイルをバッチファイル化する

次に上記の命令文を打ったテキストファイルをバッチファイル化します。

これはすでに説明した通りで簡単ですが、以下の通り、ファイルの種類で「すべてのファイル」を選んで適当なファイル名にしたあと「.bat」拡張子をつけるだけです。

そうすると歯車の付いたアイコンのファイルが生成されます。

これですでに完成です。めちゃくちゃ簡単じゃないですか。

「ファイル名リスト化」バッチファイルを入れたフォルダでダブルクリックすれば、勝手に同フォルダ内にあるファイル名を取得し、CSVに落とし込んでくれます。

では、今回作ったバッチファイルを実際に使ってみましょう。

実際に作る(3)作成したバッチファイルを使う

仮で作ったフォルダには以下のようなスクショやフォルダが入ったフォルダに先ほどのバッチファイルを用意しました。

 

ここで、一番右端のファイル名リスト化.batをダブルクリックすると、

 

 

以上のような赤枠線のCSVファイルが作成されます。

この中身を開くと、以下のようなリストになっており、無事に一覧でファイル名を取得することが出来ました。

 

実際に作る(4)命令文の意味

今回使った命令文の意味は以下の通りです。

コード 意味 内容
dir 命令文 「ディレクトリ名」+「ディレクトリにあるサブディレクトリとファイル名」を取得する
/b オプション 「ディレクトリ名」+「名」ではなく、「ディレクトリ名を除いた名」だけを取得する
> 〇〇 命令文 取得したデータを〇〇(CSVやテキスト)に出力します。

ですので、今回の命令文、

dir /b > failename.csv

は、

「属するディレクトリ名を除いた各ファイル、各サブディレクトリ名をCSVに出力してね」

という意味です。

結果として、CSVでリストが作られたのですね。

なんとなくバッチファイルの凄さが伝わったでしょうか。

まとめ

その他もたくさんの命令文があり、変数を使ったりだとか、関数っぽいものを作ったりだとかという操作でより柔軟な設計が出来たりします。

今後もバッチファイルでちょっとした便利なプログラムを作る記事を書きますので、是非参考にしてみてください。