対象は JavaScript の基礎文法・開発経験がある人、または Java か C# を知っている人です。ゴールは .bat / .cmd を自分で書けるようになることです。
| 読む順 | 目的 |
|---|---|
| 第1回 → 第2回 → 第3回 | 勉強会で順に読む(学ぶ順)。各回60分 |
付録(A1 〜 A3) | 勉強会後、実際に書くときに引く(探す順) |
templates\ | 新しくバッチを書き始めるときにコピーする |
samples\ | 資料に出てくるコードを実際に動かす |
各資料は HTML と Markdown の両方を用意しています。HTML が原本で、.md は HTML から変換して生成したものです。GitHub 上で読むときは .md、図(SVG)を見たいときや印刷するときは .html を開いてください。内容を直すときは HTML を編集し、そのあと .md を作り直します。作り直しは src\scripts\70_html2md\html2md.cmd をダブルクリックするだけです。
| 回 | 中心的な問い | 核心 |
|---|---|---|
| 第1回 | なぜバッチは他の言語と同じように読むと壊れるのか | 1行ずつ置換してから実行する |
| 第2回 | ループの中で変数が更新されないのはなぜか | 括弧ブロックは1つの論理行 |
| 第3回 | 他人に渡して壊れないバッチの条件は何か | 環境を固定しないと壊れる |
サンプルとテンプレートは SJIS(CP932)+ CRLF で保存されています。エディタで開いて保存するときにエンコーディングを変えないでください。UTF-8 で保存すると日本語が化けて構文エラーになります。
| 回 | 資料 | 内容 |
|---|---|---|
| 第1回 | バッチの実行モデル | .bat と .cmd の違い / 1行がどう展開され実行されるか / 変数 / 終了コード / 引数と %~dp0 |
| 第2回 | 制御構文と展開の罠 | if / for の4つの形 / 遅延展開 / 文字列操作 / サブルーチン / エスケープ |
| 第3回 | 実務で使えるバッチを書く | 文字コードとコードページ / 日時の取得 / 実行環境の固定 / エラー処理 / ログ / 引数処理 / 配布時の注意 |
本編が「学ぶ順」、こちらが「探す順」で並びます。ファイル名の A1 〜 A3 は、引くときに使う入口の順です。
| 資料 | 内容 | 使う場面 |
|---|---|---|
| A1 逆引き参照 | やりたいこと / 他言語の構文 / 症状 の3つの入口から該当箇所を引く索引 | まずここから引く |
| A2 記法早見表 | 変数展開・引数・エスケープ・if・for・文字列操作・リダイレクト・よく使うコマンド |
記法だけ確認したいとき |
| A3 落とし穴カタログ | 症状 → 原因 → 修正 の形で14項目 | 動かないとき |
templates\)コピーして使うためのものです。この勉強会で扱った対策をすべて含んでいます。
| ファイル | 用途 | 特徴 |
|---|---|---|
tool.cmd | 引数を取るツール | 引数チェック、ヘルプ表示、:finish での後始末 |
launcher.cmd | ps1 や exe の起動 | pause あり。ダブルクリック前提 |
batchjob.cmd | 無人実行のバッチ処理 | 日付ごとのログ、pause なし |
samples\)資料に出てくるコードを実際に動かせます。落とし穴は「失敗版」と「修正版」を対で置いてあります。