プログラムを書かずにExcelでコマンドを大量生成する方法
この記事の内容
- Excelのセル結合機能を使ってコマンドプロンプト用コマンドを大量に自動生成する方法を解説します
- PowerShellなどのプログラムを書かなくても、Excelのデータからコマンドを一括作成できます
- ポケモン一覧などの表データを元に、フォルダを大量作成する具体例を紹介します
- この手法が適しているケース・適していないケースについても説明します
はじめに
大量のコマンドを一度に実行したい場面は、IT管理の現場でよく出てきます。たとえばフォルダの一括作成やActive Directoryへのユーザー一括登録などがその典型例です。
この記事では、プログラムをまったく書かずに、Excelを使ってコマンドを大量生成する方法をご紹介します。
プログラムで行う場合(おさらい)
プログラムが書ける方であれば、PowerShellでループを使う方法があります。たとえば1から100まで番号付きフォルダを作成する場合は、以下のようなスクリプトになります。
1..100 | ForEach-Object {
mkdir "フォルダ$_"
}
単純な連番であればこの方法は有効ですが、「表の中にある意味のある名前」でフォルダを作りたい場合には少し工夫が必要になります。
Excelを使ったコマンド生成の考え方
たとえばポケモンの名前一覧のような表データがあって、それぞれの名前でフォルダを作成したいとします。このような場合、Excelのセル上でコマンド文字列そのものを作ってしまうのが一番シンプルで早い方法です。
Excelは表計算ソフトですが、文字列の結合を使えばコマンドを生成するツールとしても非常に優秀です。
具体的な手順
1. データをExcelに貼り付ける
名前の一覧をコピーして、Excelのシートに貼り付けます。CSVとして保存してから貼り付けても構いません。名前が入ったセルが縦に並んでいる状態にします。
2. 隣のセルにコマンドを生成する数式を書く
たとえばA列に名前が入っている場合、B1セルに以下のような数式を入力します。
これで、mkdir フシギダネ のようなコマンド文字列が自動的に生成されます。
3. 数式を下のセルにコピーする
B1セルをコピーして、名前が入っている最終行まで貼り付けます。すると、全行分のコマンドが一気に生成されます。
4. 生成されたコマンドをコマンドプロンプトに貼り付けて実行する
生成されたコマンド列をすべて選択してコピーし、コマンドプロンプトを開いて目的のフォルダに移動してから貼り付けます。
cd C:\作業フォルダ
(ここにコピーしたコマンドをペースト)
実行すると、大量のフォルダが一度に作成されます。
応用できるシナリオ
この手法はフォルダ作成に限らず、さまざまな場面で応用できます。
- Active DirectoryへのユーザーID一括登録(例:
net userコマンドの生成) - 設定変更コマンドの一括作成
- バッチファイルの自動生成
Excelで管理している一覧に対して何らかのコマンド処理をしたい場合、このアプローチが非常に効果的です。生成したコマンドをそのままコマンドプロンプトに貼り付けることもできますし、バッチファイルとして保存して実行することもできます。
この手法を使うべきケース・避けるべきケース
向いているケース
- 一度きりの作業で、繰り返し実行する予定がない場合
- 手元にある表データに対してすぐコマンドを発行したい場合
- プログラムを書くほどでもない軽いスクリプト作業
向いていないケース
- 同じ処理を何度も繰り返し行う運用になっている場合
- 再実行性や保守性が求められる業務自動化
繰り返し実行するような仕組みには、きちんとプログラムやスクリプトを組んで管理することをおすすめします。ツールは目的に応じて使い分けることが大切です。
まとめ
Excelの文字列結合機能を使えば、プログラムをまったく書かなくてもコマンドを大量に生成できます。表データをそのままコマンドに変換できるため、IT管理の現場でよく出てくる「一覧データに対してまとめて処理したい」というニーズに素早く応えられます。
コマンドの書き方さえ分かっていれば誰でもすぐに使える手軽な手法ですので、ぜひ活用してみてください。ただし、繰り返し実行が必要な運用には不向きですので、用途に応じて適切な方法を選択するようにしましょう。