Windows:batファイルの基本と作り方

Windowsの動作確認やテスト、自動化処理をする際に、bat(バッチ)ファイルの作成方法、基本を押さえておくといつか役に立つと思い、ここに基本の作り方と役に立ちそうなコマンドを記録として残したいと思います。

バッチファイルの基本的な作り方

1:テキストエディタを開く

メモ帳などのテキストエディタを開きます。

2:コマンドを記述する

実行したいコマンドをテキストエディタに記述します。

下記は一例です。

@echo off
echo Hello, World!
pause

3:ファイルを保存する

ファイル名を「example.bat」のように「.bat」拡張子で保存します。

このファイルは、batファイルを動かすとコマンドプロンプト上に、Hello, World!と表示させ、何かキーを押すと終了するバッチファイルとなります。

バッチファイルの基本的な構造

@echo off

この行をファイルの先頭に記述することで、コマンドプロンプトにコマンド自体が表示されるのを防ぎます。

echo

メッセージを表示するためのコマンドです。例えば、echo Hello, World!と記述すると、「Hello, World!」と表示されます。

pause

このコマンドは、ユーザーがキーを押すまで処理を一時停止します。デバッグや確認のために便利です。このコマンドがないと逆に自動的に実行が完了したらコマンドプロンプトが終了するので何が走ったのかがわからなくなります。

例:フォルダとファイルを作成するバッチファイル

以下は、デスクトップに「TEST」フォルダを作成し、その中に「test.txt」ファイルを作成するバッチファイルの例です。

@echo off
cd %USERPROFILE%\Desktop
md TEST
cd TEST
echo This is a test file. > test.txt
pause

基本的なコマンド

cd:ディレクトリを変更します。

md:新しいフォルダを作成します。

echo:メッセージを表示したり、ファイルに書き込みます。

pause:処理を一時停止します。

 

基本的なコマンド一覧

@echo off

コマンド自体の出力を抑制します。バッチファイルの先頭に記述することが多いです。

echo

メッセージを表示します。例: echo Hello, World!

pause

ユーザーがキーを押すまで処理を一時停止します。

set

環境変数を設定します。例: set MY_VAR=123

if

条件分岐を行います。例: if %MY_VAR%==123 echo 変数は123です

goto

スクリプト内の特定のラベルにジャンプします。例: goto :label

call

別のバッチファイルやサブルーチンを呼び出します。例: call anotherfile.bat

start

新しいウィンドウでプログラムやバッチファイルを実行します。例: start notepad.exe

rem

コメントを記述します。例: rem これはコメントです

for

ループ処理を行います。例: for %%i in (1 2 3) do echo %%i

応用的なコマンド

cd

ディレクトリを変更します。例: cd C:\Users

md

新しいフォルダを作成します。例: md NewFolder

del

ファイルを削除します。例: del filename.txt

copy

ファイルをコピーします。例: copy source.txt destination.txt

exit

バッチファイルの実行を終了します。例: exit /b 0

 

以上。

batファイルは、上手に使えば、手作業でかかる時間を大幅に短縮してくれる便利なプログラムを作り、利用することが出来ます。しかし、悪用することも出来てしまうものでもあります。倫理観をもって技術は使いたいものです。個人であれば、他者からもらったbatファイル、誰かのよくわからないファイルは、基本実行せずにおくことが無難です。そもそもファイルも受け取らないことがよいのは言うまでもありません。会社等で使用する場合、batファイル等の実行を制限している場合があり、検知ソフトなどがある場合は、Windowsの環境変更を検知してしまう場合もあるため、よく確認をした上で、出来れば検証用の環境などで作成、実行してから等がよいことでしょう。上記で記載したことは、基本コマンドですが、被害を与えるものに限らず、悪用のファイルを作った時点で、日本では違法になるので、十分に注意をしましょう。