batファイル(バッチファイル)を使用して、特定のファイルを特定のフォルダにコピーすることが簡単にできる。
batファイル・・・Windows上で実行できるコマンドの記述されたファイル。拡張子が「.bat」でこのファイルをダブルクリックするとそこに記述されたコマンドが順次実行される。
これはバックアップにも使えるので、データベースのバックアップなどで使っている。
最も簡単なバッチファイルから順番に作ってみよう。
1.現在のバッチファイルのある場所を表示させる。
メモ帳やエディタを使って以下のように記述してみる。今回エディタはフリーソフトのterapadを使用した。その中に、
echo %0
pause
と入力する。Cドライブ直下に「test」フォルダを作成し、その中に「sample.bat」というファイルを作成してみた。
説明
echo・・・以降の文字を表示
%0・・・バッチファイルのフルパスを表す。(%1、%2のような使い方もあるがここでは略)
pause・・・キーが押されるまで一時停止
「sample.bat」をダブルクリックすると、下のような画面が出てフルパスが表示される。
次に~(チルダ)を%と0の間に入力します。(ひらがなのへのキーを半角でシフトを押しながら入力します)全角の~(から)ではありません。普通の文字よりも上に小さく表示されます。
echo %~0
pause
~・・・%と0の間に挟むと、「" "」ダブルクォーテーションを取り除きます。実行するとこんな感じ。
%~と0の間にdを入れてみます。
d・・・%と0の間に挟むと、ドライブ名のみ表示されます。下のような感じ。
%~と0の間にdの代わりにpを入れてみます。
p・・・%と0の間に挟むと、パス名のみ。実行すると下のような感じ。
それでは、%~と0の間にdpと続けて入れてみます。
実行するとバッチファイルのある場所がきちんと表示される。(「C:\test\」の所)
2.ファイル名を変数に代入してフルパスで表示させてみる。
このように入力してみる。
echo %~dp0
SET EXCEL_FILE=%~dp0EXCEL.xlsx
echo %EXCEL_FILE%
pause
説明
SET EXCEL_FILE=・・・「SET」コマンドで「EXCEL_FILE」という変数に値をセット
「%~dp0」までは先程の説明から「C:\test\」を表している。
%EXCEL_FILE%・・・変数を参照する場合は「%」で囲む
実行すると(バッチファイルをダブルクリックすると)「C:\test\EXCEL.xlsx」と表示される。
3.指定したフォルダにあるエクセルを別の指定したフォルダにコピーする。
あらかじめエクセル「C:\test\EXCEL.xlsx」を準備しておきます。また、フォルダ「C:\test2\」を作っておきます。
下のように入力してみる。
@echo off
rem エクセルをコピーします。
SET EXCEL_FILE=C:\test\EXCEL.xlsx
SET EXCEL_FILE2=C:\test\EXCEL.xlsx
rem コピーします。
copy /Y %EXCEL_FILE% %EXCEL_FILE2%
説明
echo off・・・「echo off」で実行されたコマンドが表示されなくなる
@echo off・・・「@」があると「echo off」も表示されなくなる
rem・・・コメントで無視されます。
copy A B ・・・AをBにコピーします。
copy /Y ・・・「/Y」で上書きを許可
これを実行すると、「C:\test\EXCEL.xlsx」が「C:\test2\EXCEL.xlsx」にコピーされます。