「move」コマンドでらくらくファイルリネーム

MicrosoftがリリースしているOS「Windows 7」は、GUI(グラフィカルユーザーインタフェース)を主なUI(ユーザーインタフェース)として採用していますが、CUI(コマンドラインユーザーインタフェース、またはキャラクタユーザーインタフェース)である「コマンドプロンプト」も用意しています。そこで本稿では、このコマンドプロンプト上で動作するコマンドや、特定の作業を自動化するバッチファイルを使用し、ライフハック的な活用方法を紹介していきます。

今回はGUIの弱点とも言える、自動作業をコマンドラインで補完しましょう。そもそもCUIの優位性は単純作業を繰り返す自動化が容易な点です。例えばプロジェクト名の変更により、大量のファイル名を変更しなければならない場面に出会(でくわ)したとしましょう。その際、ワンファイルずつリネーム作業を行なうのは面倒なことこの上ありません。一見するとファイルをまとめて選択し、リネーム作業を実行すればよい様に見えますが、Windows 7の場合「{ファイルもしくはフォルダー名}(順番の数字)」となり、ファイル名が意味をなさなくなります。ちなみにこのリネーム操作は、直後であれば[Ctrl]+[Z]キーを押せば、リネーム前の状態に戻りますので安心してください(図01~02)。

図01 GUI上でファイル・フォルダー名を変更するには、対象を右クリックしてメニューから<名前の変更>をクリックするか

[F2]キーを押して、編集モードに切り替えます

図02 複数のファイル・フォルダーを選択した状態で、リネーム操作を行ないますと、

「{ファイルもしくはフォルダー名}(順番の数字)」となり、ファイル名が意味をなさなくなります

さて、コマンドラインでファイル名やフォルダー名を変更するコマンドが「ren(rename)」と「move」。前者は名称を変更する「rename」から付けられたコマンド名、後者は文字どおり移動することを指すコマンド名です。両者の機能的な違いですが、前者はあくまでもファイル名やフォルダー名を変更する機能しか備えておらず、リネームと同時に異なるフォルダー(ディレクトリ)へ移動させるには、後者の「move」コマンドを使用しなければなりません(図03~04)。

図03 「ren」コマンドを使って同一のフォルダー内でリネームするときは、問題なく実行できます。

しかし異なるフォルダーへの移動処理を加えるとエラーが発生し、実行できません

図04 「move」コマンドを使用するとリネーム作業と

同時に異なるフォルダーへの移動処理も実行可能となります

このように、異なるフォルダーへの移動操作が可能な「move」コマンドですが、移動先に同一名を持つファイルやフォルダーが存在する場合、上書きするか確認をうながされます。ケアレスミスによる上書きを避けるための機能ですが、上書きを強制実行する「/y」オプションを使いましょう。図05の画面のとおり確認をうながされず、ファイルやフォルダーのリネームおよび移動が実行されます(図05)。

図05 「move」コマンドを使用し、移動先に同一のファイルやフォルダーが存在する場合、上書きするか確認をうながされますが、

「/y」オプションを加えると強制的に実行されます

ちなみに本動作は、環境変数「COPYCMD」で「/y」オプションを設定すれば、「move」コマンド実行時に同オプションを使用しなくても強制上書きが実行されますが、一時的に同設定を無効にするときは、コマンドラインから「/-y」オプションを使いましょう。もっともバッチファイルで「move」コマンドを使用する際は、同環境変数も参照されず、強制上書きモードになりますので、注意してください。また、同環境変数はファイルやフォルダーのコピーを行なう「xcopy」コマンドにも反映されます(図06)。

図06 環境変数「COPYCMD」を使用すれば「/y」オプションを使用せず、自動的に強制上書きが実行されるようになります