DOSコマンド勉強会 資料

Windows のバッチファイル(.bat / .cmd)を自分で書けるようになるための全3回シリーズ

📅 作成: 2026-08-24 / 更新: 2026-08-25

はじめに

この資料の使い方

対象は JavaScript の基礎文法・開発経験がある人、または Java か C# を知っている人です。ゴールは .bat / .cmd を自分で書けるようになることです。

読む順目的
第1回 → 第2回 → 第3回勉強会で順に読む(学ぶ順)。各回60分
付録(A1A3勉強会後、実際に書くときに引く(探す順
templates\新しくバッチを書き始めるときにコピーする
samples\資料に出てくるコードを実際に動かす

各資料は HTML と Markdown の両方を用意しています。HTML が原本で、.md は HTML から変換して生成したものです。GitHub 上で読むときは .md、図(SVG)を見たいときや印刷するときは .html を開いてください。内容を直すときは HTML を編集し、そのあと .md を作り直します。作り直しは src\scripts\70_html2md\html2md.cmd をダブルクリックするだけです。

3回の流れ

中心的な問い核心
第1回なぜバッチは他の言語と同じように読むと壊れるのか1行ずつ置換してから実行する
第2回ループの中で変数が更新されないのはなぜか括弧ブロックは1つの論理行
第3回他人に渡して壊れないバッチの条件は何か環境を固定しないと壊れる

サンプルとテンプレートは SJIS(CP932)+ CRLF で保存されています。エディタで開いて保存するときにエンコーディングを変えないでください。UTF-8 で保存すると日本語が化けて構文エラーになります。

勉強会 本編(全3回 / 各60分)

本編

資料内容
第1回 バッチの実行モデル .bat.cmd の違い / 1行がどう展開され実行されるか / 変数 / 終了コード / 引数と %~dp0
第2回 制御構文と展開の罠 if / for の4つの形 / 遅延展開 / 文字列操作 / サブルーチン / エスケープ
第3回 実務で使えるバッチを書く 文字コードとコードページ / 日時の取得 / 実行環境の固定 / エラー処理 / ログ / 引数処理 / 配布時の注意
付録・リファレンス

引くための資料

本編が「学ぶ順」、こちらが「探す順」で並びます。ファイル名の A1A3 は、引くときに使う入口の順です。

資料内容使う場面
A1 逆引き参照 やりたいこと / 他言語の構文 / 症状 の3つの入口から該当箇所を引く索引 まずここから引く
A2 記法早見表 変数展開・引数・エスケープ・iffor・文字列操作・リダイレクト・よく使うコマンド 記法だけ確認したいとき
A3 落とし穴カタログ 症状 → 原因 → 修正 の形で14項目 動かないとき
コードと計画

テンプレート・サンプル・計画

テンプレート(templates\

コピーして使うためのものです。この勉強会で扱った対策をすべて含んでいます。

ファイル用途特徴
tool.cmd引数を取るツール引数チェック、ヘルプ表示、:finish での後始末
launcher.cmdps1 や exe の起動pause あり。ダブルクリック前提
batchjob.cmd無人実行のバッチ処理日付ごとのログ、pause なし

サンプル(samples\

資料に出てくるコードを実際に動かせます。落とし穴は「失敗版」と「修正版」を対で置いてあります。

計画