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の環境変更を検知してしまう場合もあるため、よく確認をした上で、出来れば検証用の環境などで作成、実行してから等がよいことでしょう。上記で記載したことは、基本コマンドですが、被害を与えるものに限らず、悪用のファイルを作った時点で、日本では違法になるので、十分に注意をしましょう。