ファイルの移動

ファイルを別のディレクトリに移動させるには、目的のファイルをコピーしたあと削除するという方法も考えられますがmoveコマンドを使う方法がより効率的です。moveコマンドは、指定されたファイルを別の場所に移動させます。

move ファイル名 移動先

ファイル名に移動するファイルのパスを指定し、移動先にファイルの移動先となるパスを指定します。ディレクトリの移動も可能です。ファイル名に指定した移動元のファイルが見つからない場合は、ファイルが見つからないことを表すエラーメッセージが表示されます。

サンプル 06

@echo off

if not exist files mkdir files
move test1.txt files
move test2.txt files
move test3.txt files

pause

実行結果

サンプル06は、現在のディレクトリにあるtest1.txt、test2.txt、test.3txtの3つのファイルをfilesディレクトリに移動します。ifコマンドで、filesディレクトリが存在しない場合はmkdirコマンドを実行してディレクトリを自動生成します。

ファイル名の変更

moveコマンドによるファイルの移動処理で、移動先が移動元のファイル名と同じディレクトリの場合は、移動先に指定した名前にファイルが置き換わります。よって、moveコマンドでファイル名やディレクトリ名の変更を行えます。ただし、ファイル名の変更が目的である場合はrenコマンド、またはrenameコマンドという専用のコマンドが用意されているので、こちらを利用するべきでしょう。

ren 元のファイル 新しいファイル名
rename 元のファイル 新しいファイル名

どちらのコマンドも、コマンド名が異なるだけで効果は同じです。moveコマンドとは異なり、新しいファイル名にはドライブや他のディレクトリのパスを含めることはできません。このコマンドは、常に第1パラメータに指定された元のファイルの名前を指定された新しいファイル名に変更します。ファイルはディレクトリから移動しません。

サンプル 07

@echo off

set /P OLDNAME="名前を変更するファイル>"
set /P NEWNAME="新しい名前>"

echo 「%OLDNAME%」ファイルの名前を「%NEWNAME%」に変更します。
rename %OLDNAME% %NEWNAME%

pause

実行結果

サンプル07を実行すると、最初に名前を変更するファイルの入力が求められ、次に指定されたファイルの新しい名前の入力が求められます。それぞれの入力から得られた文字列を使ってrenameコマンドで指定されたファイルを新しい名前に変更します。対象がディレクトリの場合でも、同じように名前を変更できます。