ファイルのコピー
ファイルやディレクトリはcopyコマンドでコピーできます。
copy コピー元 コピー先
コピー元にはコピーするファイルやディレクトリのパスを、コピー先にはファイルやディレクトリのコピー先を指定します。コピー元とコピー先がファイル名である場合、指定されたファイルを新しいファイル名でコピーします。コピー元とコピー先がディレクトリである場合、指定したディレクトリ内のファイルをコピーします。
サンプル 03
@echo off
copy test.txt copy1.txt
copy test.txt copy2.txt
copy test.txt copy3.txt
pause
実行結果
サンプル03は、カレントディレクトリ内にあるtest.txtファイルを、同じディレクトリ内にcopy1.txt、copy2.txt、copy3.txtの3つのファイルにコピーします。このように、バッチプログラムを使ってファイル単位でコピーを取れば、バックアップ作業を自動化するできます。ifコマンドなどと組み合わせることで、ファイルのコピー条件などを細かく設定できます。
1回のcopyコマンドで複数のファイルをコピーすることも可能です。このとき、コピー元のファイルを複数指定することができますが、コピー先は常に1つして選択できません。複数のコピー元を指定するには + 記号でパスを区切ります。
copy コピー元 + コピー元 + ... コピー先
このときファイルが個別にコピーされるのではなく、コピー元に指定されたファイルの順で結合されコピーされます。
サンプル 04
@echo off
copy test1.txt + test2.txt + test3.txt copy.txt
pause
実行結果
サンプル04は、test1.txt、test2.txt、test3.txtの3つのテキストファイルをcopy.txtファイルにまとめてコピーしています。この結果、これら元のファイルのテキストが順に結合されcopy.txtに保存されます。このようにcopyコマンドは、単純なファイルのコピーだけではなく分割されたファイルの結合にも応用できます。
ファイルの削除
ディレクトリごとの削除はrmdirで行えましたが、ファイルを個別に削除するには、delコマンドまたはeraseコマンドを使います。どちらのコマンドも、コマンド名が異なるだけで効果は同じです。
del ファイル名
erase ファイル名
これらのコマンドのパラメータには、削除するファイルのパスを指定します。指定したファイルが存在しない場合はエラーメッセージが表示されます。
サンプル 05
@echo off
if exist copy1.txt (
del copy1.txt
echo copy1.txt を削除しました
) else echo copy1.txt が見つかりません
if exist copy2.txt (
del copy2.txt
echo copy2.txt を削除しました
) else echo copy2.txt が見つかりません
if exist copy3.txt (
del copy3.txt
echo copy3.txt を削除しました
) else echo copy3.txt が見つかりません
pause
実行結果
サンプル05は、カレントディレクトリ内にあるcopy1.txt、copy2.txt、copy3.txtファイルを削除します。ifコマンドで対象のファイルがあるかどうかを調べ、ファイルが存在すればdelコマンドで削除し、見つからなければファイルが見つからないことを通知するメッセージを表示します。