エラーメッセージは、実際に出る言語(英語)の原文と公式の日本語訳を並べる決まり。次の 2 件は、日本語環境でしか取れず、英語の原文が未確認のまま日本語だけを載せている。
%~dp0 等)の使い方が無効なときのメッセージ実機の英語表示の cmd で出力を取れば確かめられる。推測で英文を書かない。
選び方: (A) 英語表示の環境で実測して原文を足す(推奨。決まりどおりになる) / (B) 実測できるまで日本語だけを載せ、その旨を本文に書く。→ A を採用。
結果: 英語のロケール資源(en-US の cmd.exe.mui)に原文があった。日本語側と突き合わせたところ、01 の日本語が公式と違っていた(「置き換え中で」→「置き換えで」、「使用方法」→「使用法」)。続く案内の行も足りなかったので、公式の全文に直した。UNC のメッセージも、続く 1 文と前置きの行を足した。
html2md を流す資料に載せた出力は、サンプルを実行して貼ったもの。ただし、あとからサンプルや資料を直したときに、出力がずれていないかを確かめる手段が無い(tests/ と tools/40_test/ が無い)。
サンプルは実行するとファイルを作るものと、コンソールのコードページで出力が変わるものがあり、そのまま一括実行はできない。作るなら、出力先を tmp/ にし、窓を SJIS(932)に固定して、期待値を先に手で書く形になる。
選び方: (A) tests/ に実行テストを作り、tools/40_test/ にランチャを置く(推奨。資料とサンプルのずれを機械で見つけられる) / (B) 作らず、直すたびに手で実行して確かめる運用にする。
選び方の結果: A を採用。tests/samples.test.ts と tools/40_test/run-tests を作った。新しい窓(windowsHide)で 932 に固定して実行し、tmp/ に写して走らせる。node --test と bun test の両方で通る。
02-if.cmd の値を変えて実行し、落ちるのを見てから戻した)tests/samples-env.test.ts)。引数は固定し、wmic の有無は実行時に見分けるテストの期待値を手で書く過程で、実機と食い違うと分かった。バッチの中では、未定義の %VAR% は空文字に置き換わる。元の文字列が残るのは、コマンドプロンプトに直接打ったときだけ。実測した([%UNDEFINED_VAR%] が、バッチでは []、cmd /c に直接渡すと [%UNDEFINED_VAR%])。
02 の本文と A3 は、すでに「消える」と書いていて、01 とだけ食い違っていた。
02-expand.cmd の表示を、実測どおりに直す[] になることを確かめる公式のロケール資源(cmd.exe.mui と kernelbase.dll.mui)と実機の出力で、資料に載せた全メッセージを突き合わせた。
x was unexpected at this time.)The system cannot find the path specified.)は kernelbase.dll.mui で確かめたtests/messages.test.ts を足す(実機の出力と資料の文言を突き合わせる)tests/ と tools/40_test/ を足す残りのサンプルのテストを書く過程で見つけた。Windows 11 の新しい版には wmic が無い。LDT が未定義のまま !LDT:~0,8! が展開され、結果 = [~0,8C:/Tools/nodejs/nodeLDT:~8,6] のような表示になる。資料 03 の方法 2 は、すでに「非推奨・将来削除される予定」と書いているが、削除済みの環境で何が起きるかは書いていない。
選び方: (A) 資料 03 の方法 2 に、「削除された環境では動かず、表示も崩れる」と書き足す。サンプルは非推奨の見本としてそのまま残す(推奨。方法 2 は使わせないための例示で、直す意味が薄い) / (B) サンプルに wmic の有無を確かめる行を足し、無ければ「この環境には wmic が無い」と表示する。
wmic の有無を実行時に見分けて通すshift は %1 以降だけでなく %0 もずらす。03 のサンプル 04・05 は、オプションの解析(shift)のあとで使い方を出すと、「使い方: -v …」のようにファイル名が -v になっていた。資料 03 の引数解析の節は、使い方に %~nx0 を使うと説明しているが、shift のあとでは名前が変わることを書いていない。
選び方: (A) A3(落とし穴カタログ)に項目を足し、03 の引数解析の節からリンクする(推奨。症状・原因・修正の形で引ける) / (B) 03 の引数解析の節に 1 文の注意だけを足す。
set "SELF=%~nx0")tests/docs.test.ts)