ビジネスでもプライベートでも、PCを利用した日々の活動にファイル管理は欠かせません。ここ数年は、いわゆるクラウドの発展によってWebサービスにデータを保管することが主流になりつつありますが、それでも多くのデータは今なお、ローカルPCに保存されています。オフィス文書、家計簿、連絡先やスケジュール、写真やイラスト、録画した動画、多くの種類のファイルを適切に管理する必要があります。特に、バックアップや他のデバイスとの同期は、いつの時代でも管理者を悩ませる大きな問題のひとつです。

Windows Vistaになって「バックアップの状態と構成」を使ってドライブ内のデータを種類ごとにバックアップできるようになりましたが、フォルダやファイルのパスを指定して個別にバックアップすることができなくなったため、細かなバックアップ管理には適さなくなってしまいました。特定のファイル名を指定してコピーを作成するかどうかを決定するなど、条件によってファイル単位で操作しなければならない場合には、多くが人の手で選別して操作しているでしょう。

このような、特定のビジネスプロセスや管理条件に限定された操作を行うには、今もバッチファイルを使ったファイル制御が有効です。バッチファイルであれば、管理用のプログラムを開発したりインストールする手間が省け、簡単なコマンドの組み合わせて誰にでも作成できます。

ディレクトリの操作

Windowsのフォルダのことを、コマンドプロンプトでは統一してディレクトリと呼んでいます。バッチ処理でファイルをコピーするような場合に、複数のファイルを何らかのフォルダにまとめたい場合は、コマンドから新しいディレクトリを作成します。新しいディレクトリの作成にはmkdirコマンド、またはmdコマンドを使います。これらのコマンドは、名前が違うだけで同じものです。

MKDIR [ドライブ:]パス
MD [ドライブ:]パス

これらのコマンドに指定するパラメータには、生成するディレクトリのパスを指定します。相対パスを指定した場合は、カレントディレクトリを基準とした位置にディレクトリが生成されます。ドライブ名から始まる絶対パスを指定することも可能です。

サンプル 01

@echo off

set /P DIRNAME="生成するディレクトリ名>"
mkdir %DIRNAME%

if %ERRORLEVEL%==0 (
    echo 「%DIRNAME%」ディレクトリの作成に成功しました
)

pause

実行結果

サンプル01を実行すると生成するディレクトリ名の入力が求められ、適当な名前を入力するとDIRNAME変数に内容が保存されます。この変数に入力された文字列をmkdirコマンドのパラメータとすることで、入力された名前のディレクトリを生成しています。mkdirコマンドはディレクトリの生成に成功すると終了コードに0を設定します。すでにディレクトリが存在するなど、生成に失敗した場合はエラーメッセージを表示して0以外の終了コードが設定されるでしょう。

ディレクトリはrmdirコマンド、またはrdコマンドで削除することもできます。

rmdir パス
rd パス

これらのコマンドは、パラメータに指定されたパスのディレクトリを削除します。ただし、デフォルトでは指定したパスのディレクトリが空でなければ削除に失敗します。

図 01 空ではないディレクトリの削除

オプションの/Sを加えると、ディレクトリ内のサブディレクトリを含めたすべてのファイルを削除します。

rmdir /S パス
rd /S パス

このとき、ディレクトリ内のファイルを削除してよいかどうかの入力が促されます。

図02 ディレクトリの削除を確認する

これを省略したい場合は/Sに加えて/Qオプションを指定します。

rmdir /S /Q パス
rd /S /Q パス

通常、利用者の作業を自動化することを目的としたバッチファイルで削除するかどうかを確認する必要はないので/Sや/Qオプションを指定して、ファイルの削除確認を省略することになるでしょう。誤って重要なディレクトリを削除してしまわないように注意してください。

サンプル 02

@echo off

set /P DIRNAME="削除するディレクトリ名>"

echo 「%DIRNAME%」ディレクトリを削除します
rmdir %DIRNAME%

pause

実行結果

サンプル02は、入力された名前のディレクトリをrmdirコマンドで削除するプログラムです。指定したディレクトリが存在しない場合、ディレクトリが見つからないというメッセージが表示されて終わります。このコマンドでは、ディレクトリを削除できなくても終了コードは0となります。