Windows機能

【バッチファイル】基本コマンド一覧と具体例|よく使うコマンドを目的別に整理

この記事について

BATファイルを書こうとすると、「結局、どのコマンドを覚えればいいの?」と迷う人は多いです。実際のところ、BATファイルで使うコマンドは限られています。すべてを覚える必要はありません。
本記事では、「BATファイルでよく使う基本コマンド」「実務で使用頻度の高いもの」「これは最低限覚えたい」コマンドを目的別に整理して一覧化します。

※本記事にも「/im」や「/f」のようなオプション機能が出てきますが、コマンドによって意味が変わります。(コマンドのhelpで探すか、AIに頼って効率よく適切なオプションを使用しましょう。)

この記事でわかること

  • BATファイルでよく使う基本コマンド一覧
  • ファイル操作・フォルダ操作のコマンド
  • 制御系(if / for / exit など)
  • 表示・確認用コマンド
  • treeコマンド
  • 実務での使いどころ

バッチファイルとは?

バッチファイルについては以下の記事を参考にしてください。

バッチファイルでよく使う基本コマンド一覧

表示・制御系コマンド

ほぼ全てのBATで使う基本セット。

コマンド内容
echoメッセージを表示する
@echo offコマンド自体を表示しない
pause処理を一時停止する
remコメントを書く

使用例①:処理の開始を分かりやすく表示したい

@echo off
rem 処理開始メッセージ
echo 処理を開始します
pause

使用例①:実行結果

プログラム・BAT起動系コマンド

BATを起点にプログラムを実行することは多々あります。
※startやcallがありますが「〇〇.exe」と入力するだけでも実行でき、それが一番よく使用します。

コマンド内容
startプログラム起動(非同期処理)
※処理を待たずに次へ進む
callプログラム起動(同期処理)
※呼び出したBATの処理が終わるまで待つ
exitBATを終了

使用例①:Excelを起動する(処理は待たない)

start excel.exe
echo Excelを起動しました

→ Excel起動後、BATは次の処理へ進む

使用例①:実行結果

使用例②:別のBATを実行して、終わるまで待つ

call Test1.bat
echo Test1.bat の処理が完了しました
pause

→ callを使わないと戻ってこないので注意

使用例③:エラー時にBATを終了する

if errorlevel 1 exit

→ 処理を続けず、そこで終了させたいとき

ファイル操作系コマンド(コピー・移動・削除)

ファイル操作でよく使用するコマンド。
※delはゴミ箱を経由せず完全削除されるため、元に戻せません。

コマンド内容
copyファイルをコピー
xcopyフォルダごとコピー(旧)
robocopy高機能コピー(推奨)
moveファイルを移動
delファイル削除

使用例①:ファイルをバックアップする

copy data.txt backup\

→「data.txt」を「backup」フォルダへコピー

使用例②:ファイルを移動する

move result.txt archive\

→ 整理・後片付け用途でよく使う

使用例③:ログファイルを削除する(※危険)

del *.log

ゴミ箱を経由せず完全削除
→ 実務では「echo」で確認してから実行推奨

フォルダ操作系コマンド

フォルダ操作でよく使用するコマンド。

コマンド内容
mkdir (md)フォルダ作成
rmdir (rd)フォルダ削除
cdフォルダ移動
dirフォルダ一覧表示

使用例①:作業用フォルダを作る

mkdir work
cd work

→ 作業環境を自動で準備できる

使用例②:フォルダ内のファイル一覧を確認

dir
pause

→ 処理前の確認用としてよく使う

条件分岐(if)コマンド

BATファイルでは、エラー制御や処理分岐は必ず明示的に書く必要があります。
何も書かないと、エラーが発生しても次の処理に進んでしまうため、意図しない動作や事故の原因になります。
※errorlevelは「指定した数値以上」の場合に「true」になります。

書き方内容
if exist ファイル名ファイルが存在するか判定
if errorlevel 数値直前のコマンドのエラー判定
※数値は0ならtrue、1以上ならfalse

使用例①:ファイルがあるときだけ処理する

if exist data.txt echo data.txt が存在します

→ ファイルの有無チェックは最頻出

使用例②:エラーが出たら処理を止める

copy a.txt b.txt
if errorlevel 1 exit

→ エラーが出ても止まらないBATの弱点を補う

繰り返し処理(for)コマンド

forコマンドは、複数のファイルや値に対して同じ処理を繰り返すときに使います。
ファイル操作や一括処理では、BATファイルの中で最も使用頻度の高い構文です。

基本的な for 文の例

以下の構文はカレントフォルダ内の拡張子「txt」に対してすべて処理するようになっています。そのファイルが%%fに入るようになっています。

for %%f in (*.txt) do echo %%f

要素の説明は以下の通りです。
※コマンドプロンプトでは %f、BATファイルでは %%f

要素内容
for繰り返し処理を開始
%%f変数(BATファイルでは %% を使用)
in (…)処理対象(ファイル・値の集合)
do実行する処理
echo %%f変数の中身を表示

使用例①:ログファイルを一括削除

for %%f in (*.log) do del %%f

→ 「全部同じ処理をしたい」ときの定番

使用例②:サブフォルダも含めて処理

for /r %%f in (*.txt) do echo %%f

→ フォルダ構成が深いときに使う

入力・変数関連コマンド(setコマンド)

BATファイルでも変数を設定することができます。

書き方内容
set 変数名=値変数定義
%変数名%変数参照

使用例①:値を使い回したい

set FOLDER=backup
mkdir %FOLDER%

→ 同じ値を何度も使うときに便利

パス・環境関連コマンド

「BATのある場所基準」で処理したいときの定番
※%~dp0を使うと「BATファイルが置いてあるフォルダ」を基準に処理できます。

コマンド内容
path実行パス設定
set環境変数操作
%~dp0BAT自身の場所

使用例:BATの場所を基準に処理したい

cd /d %~dp0
dir

どこから実行しても安定する
→ 実務ではほぼ必須

ネットワーク・システム系(補足)

せっかくなのでコマンドプロンプトで使用する物も載せておきます。

コマンド内容
ping通信確認
ipconfigIP確認
taskkillプロセス終了

使用例①:ネットワーク疎通確認

ping google.com
pause

使用例②:PCのIP確認

リモート接続するときによく使用する。

ipconfig
pause

使用例③:特定のアプリを終了させる

taskkill /im excel.exe /f

→ 管理者権限が必要な場合あり

フォルダ構成を可視化する(treeコマンド)← CMD

treeコマンドは、フォルダ構成をツリー形式で一覧表示できるコマンドです。
GUIでフォルダを開かなくても、構成全体を一目で把握できるため、調査・仕様確認・説明用として非常に便利です。
※コマンドプロンプトで入力してください。(BATでは動かないかもしれないです。)

コマンド内容
treeフォルダ構成をツリー表示
tree /fファイルも含めて表示

使用例①:カレントフォルダのサブフォルダ構成だけを確認したい

tree
pause

サブフォルダ構成を一目で把握できる

使用例②:ファイルも含めて確認したい

tree /f
pause

「どこにフォルダに何のファイルがあるか」をまとめて確認

使用例③:調査結果をファイルに保存する(実務に使用できる)

以下は実務でも使用レベルのコマンドを考えてみました。
「%cd%」に確認したいフォルダの絶対パス、「Test.txt」に調査結果を保存したいテキストの絶対パスに変更するだけで使用できます。

(echo Target Path: %cd% & tree /f) > Test.txt

→ フォルダ構成をテキスト化
資料作成・仕様共有・調査ログに便利

まとめ

BATファイルの良いところは以下の通りです。

  • コマンド数が少ない
  • 覚える範囲が狭い
  • 実務で即使える

逆に良くないところもあるため、基本的には以下の考え方でいいかと思います。

  • 無理に全部覚えようとしない
  • 複雑化したら他言語(VBAやC#.NET等)で書く

BATファイルのコマンドを忘れたらいつでも本サイトに見にきてください。