マキモノ
開発プロセス無料✅ 公式検証済みv1.0.0 / 更新

Windows の .cmd に日本語コメントを書くと REM 断片が命令として実行される(ASCII only で防ぐ・判定はコンソール行数)

タスクスケジューラ用の .cmd/.bat に日本語 REM があると cmd.exe が行の断片を命令として実行する。chcp を先頭に移しても直らない。ASCII only にし、非 ASCII 数とコンソール出力行数の2判定で機械確認する手順とテンプレート。

出品者: seisaku-team@orgiast.jp📖 読込 約1,025トークン (約2円)💰 コスパ 5
トークン節約メーター85%節約
ゼロからAIに作らせた場合6,000トークン
このMDを読ませた場合900トークン

5,100トークンの節約 (API料金換算で約8円分)。 要件定義・技術調査・試行錯誤ぶんのトークンがまるごと不要になります。※ 出品者申告とレビューに基づく推定値。モデル・タスク内容により変動します。

この巻物について

Windows の .cmd に日本語コメントを書くと REM 断片が命令として実行される(ASCII only で防ぐ・判定はコンソール行数)」は、開発プロセスカテゴリのAI指示書(MDファイル)です。タスクスケジューラ用の .cmd/.bat に日本語 REM があると cmd.exe が行の断片を命令として実行する。chcp を先頭に移しても直らない。ASCII only にし、非 ASCII 数とコンソール出力行数の2判定で機械確認する手順とテンプレート。この巻物をAIに読み込ませると、ゼロから設計・調査する場合に比べて 約5,100トークン(API料金換算で約8円)・85%のトークンを節約できます。

カテゴリ
開発プロセス
対応AI
claude-code、cursor、codex-cli
ライセンス
商用利用可 (再販不可)
価格
無料
ゼロから開発時
約6,000トークン
この巻物使用時
約900トークン
節約量
約5,100トークン (約8円)
更新日
2026-09-10

使い方 (AIに渡す3つの方法)

いちばん簡単なのはワンライナー。Claude Code のターミナルに貼るだけです。

⬇ .md をダウンロード
claude "https://makimono-md.vercel.app/api/v1/files/windows-cmd-rem-ascii-only/raw を読み込んで、この指示書どおりに実装して"
claude-codecursorcodex-cliライセンス: 商用利用可 (再販不可)

中身

Windows の .cmd/.bat に日本語コメントを書くと cmd.exe が REM 行の断片を命令として実行する — ASCII only で防ぐ

症状

タスクスケジューラや hook から呼ぶ短い .cmd(node や python を1回起動してログに追記するだけのラッパー)に、 日本語の REM コメントを書いた。実行すると、コンソールに次のような行が並ぶ。

'Cookie' は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。
'js' は、内部コマンドまたは外部コマンド、…

'Cookie''js'REM 行の途中の断片。本体(node)は正常に走り、exit code も正しく、 本体の出力はログへリダイレクトしているのでログには何も残らない。スケジューラ経由では誰も気づかない。

原因

cmd.exe は多バイト文字を含む行でファイル内の読み取り位置を取り違える。次の行の先頭ではなく 前の行の途中から読み直し、そこにある単語を命令として実行する。

chcp 65001 >nul をファイル先頭(@echo off の直後・全ての日本語行より前)へ移しても直らない(2回実測)。 コードページの問題ではなく、非 ASCII 行の存在そのものが引き金。

対処(これだけ)

  1. .cmd / .bat の中身は ASCII only にする。説明・理由・経緯は呼び出し先のスクリプトのヘッダーや 設計ドキュメントに日本語で書く。

  2. 非 ASCII が残っていないか機械判定する:

    grep -c -P '[^\x00-\x7F]' path/to/wrapper.cmd     # 0 なら合格
    
  3. 断片実行が起きていないかは コンソール出力の行数で判定する(本体の出力はログへ流している前提):

    cmd /c path\to\wrapper.cmd 2>&1 | wc -l             # 0 なら合格
    

    エラー文を文字列で grep してはいけない。 日本語のエラー文は CP932 で出るため UTF-8 の grep は空振りし、 「問題なし」と誤報する(実際に誤報した)。

  4. .vbs も同じ方針で ASCII only(cscript/wscript は UTF-8 BOM を誤読する)。

テンプレート(ASCII only のラッパー)

@echo off
REM wrapper for <tool>.mjs (scheduled every 2 hours). ASCII ONLY in this file:
REM   cmd.exe executes fragments of multibyte REM lines as commands. Put Japanese docs in the .mjs header.
setlocal
chcp 65001 >nul
cd /d "%~dp0..\.."
set LOGDIR=%USERPROFILE%\.claude\<app>
if not exist "%LOGDIR%" mkdir "%LOGDIR%"
echo [%date% %time%] start >> "%LOGDIR%\<tool>.log"
"C:\Program Files\nodejs\node.exe" tools\<tool>.mjs --ping >> "%LOGDIR%\<tool>.log" 2>&1
echo [%date% %time%] exit=%ERRORLEVEL% >> "%LOGDIR%\<tool>.log"
exit /b %ERRORLEVEL%

既存ファイルの棚卸し

同じ構造のラッパーが他にもあれば、上の判定2つ(非 ASCII 数・コンソール行数)を順に当ててから ASCII に置き換える。 exit code とログが正常でも「断片が実在する命令に一致していない」だけの偶然なので、放置しない。

よくある質問

「Windows の .cmd に日本語コメントを書くと REM 断片が命令として実行される(ASCII only で防ぐ・判定はコンソール行数)」とは何ですか?

タスクスケジューラ用の .cmd/.bat に日本語 REM があると cmd.exe が行の断片を命令として実行する。chcp を先頭に移しても直らない。ASCII only にし、非 ASCII 数とコンソール出力行数の2判定で機械確認する手順とテンプレート。

どれくらいトークン(費用)を節約できますか?

ゼロから開発すると約6,000トークンかかりますが、この巻物を使えば約900トークンで済みます。差し引き約5,100トークン(API料金換算で約8円)・85%の節約です。

どうやって使いますか?

無料です。MDファイルを Claude Code などのAIに読み込ませるだけ。ワンライナーをターミナルに貼れば実装が始まります。要件定義や技術調査を省いて実装だけにトークンを使えます。

どのAIツールに対応していますか?

claude-code、cursor、codex-cli に対応しています。

商用利用できますか?

ライセンスは「商用利用可 (再販不可)」です。

🤝 自分でAIを動かすのは、まだ不安…という方へ

この巻物の内容を、AIを使うプロに丸ごと任せることもできます。姉妹サービスAI代行堂なら「LINEで頼むだけで、仕事が完成」。

AI代行堂を見る →

関連する巻物

この巻物、誰かのトークンも救えます

𝕏 で節約レシートをシェア