cmd.exe が環境変数を展開できるのは 8191 文字までです。超えても警告は出ません。PATH から何も解決されなくなり、あらゆるコマンドが

'x' is not recognized as an internal or external command

を返します。これは未インストールに見えて、実際は探索が行われていない状態です。バイナリはディスクにあります。

PowerShell を使っていても cmd が効く理由

対話的に cmd を叩くことはありませんが、通常の作業経路に入り込んでいます。

  • npm と pnpm の run-script は cmd を経由する
  • Node の child_process の既定も cmd
  • その先が呼ぶものも同様

ターミナルでは通るビルドが、パッケージスクリプトの中でだけ失敗するのはこれが原因です。

何が文字数を使っているか

問題になるのは静止状態の PATH ではありません。mise は実行時に管理下の全ツールの bin ディレクトリを前置し、その展開分も同じ 8191 に計上されます。

測定に使っているマシンでの実測値(2026-08-04):

常設 PATH2,932 文字 / 60 エントリ
mise 展開後7,392
mise の追加分+4,460
残余799

常設分は全体の 5 分の 2 で、残りは mise です。そして mise 側はツールを足すたびに伸びます。手で書ける唯一の部分が常設側なので、守る価値があるのはそこだけです。

何が得られるか

常設 PATH から 1 エントリ削るごとに、その文字数が余裕として戻ります。削る価値があるのはそもそも到達しないエントリです。前方の shim が先に応答してしまうディレクトリや、mise 管理へ移った後も残っているツール。長さだけ消費して何も解決しません。

順序規則は path-order.toml が宣言し、windows/doctor.ps1 が実行のたびに順序と残余の両方を検査します。

残りはどれくらいか

799 文字は、ツールディレクトリ 8 つ分程度です。破綻は「パッケージスクリプトが node を見つけられない」という形で現れます。