Windows の下の CLI パラメータの引数動:なぜ –resume ‘uuid’ 会議を行うのか – fox_charon


問題現象

Windows ターミナルで実行します。

qoderclicn --resume '0691d0aa-e732-47ee-8261-f13ad7202fa4'

报错:対応するセッションが見つかりません。

去掉引号後去一通常:

qoderclicn --resume 0691d0aa-e732-47ee-8261-f13ad7202fa4

根因:Windows シェルにある单引号は「引号」ではありません

これは、Unix シェルと Windows シェルの典型的な違いです。

シェル 单引号「…」の動作 双引号 `”…”` の動作
バッシュ / Zsh 强引用、剾掉字号、内容原样这これら 弱引用、剾掉字号、変数の展開を許可する
cmd.exe **字面结果**,原样传经电影 弱语,劇掉字号
パワーシェル 强引用、剾掉字号(日本語 Bash に類似) 弱引用、剾掉字号、変数の展開を許可する

キーポイント:cmd.exe 不认单引号民掴み ' 体作普通文字、プログラムと同じUUID。

したがって、プログラムが実際に受け取るパラメータは次のとおりです。

'0691d0aa-e732-47ee-8261-f13ad7202fa4'

一度メモしてください ' もちろん、セッション ID は一致しません。

Bash に問題があるのはなぜですか?

Bash の引号処理はシェル層で行われ、プログラムは「去引号後」のパラメータを永久に取得します。

# Bash 中以下三种写法等价,程序收到的都是纯 UUID
--resume '0691d0aa-...'
--resume "0691d0aa-..."
--resume 0691d0aa-...

多くの開発者は Bash を使用しています。

本当に引用符が必要になるのはどんな場合でしょうか?

パラメータのみが含まれています空格または特殊文字必要な場合:

:: 路径含空格,必须用双引号
qoderclicn --config "C:\Program Files\myapp\config.json"

:: UUID 不含空格,不需要任何引号
qoderclicn --resume 0691d0aa-e732-47ee-8261-f13ad7202fa4

ルールの概要

シーン 推奨される練習方法
パラメータ無空格/特殊文字 不加引号
パラメータ 用**双引号** `”…“
パラメータ 含 `%` または `&`(cmd 特殊文字) 双引き号画像を使用、または振り向く
クロスプラットフォームスクリプト 単引き号は避け、双引号や干支を使用しないでください。

拡張機能: AI ツールがこのエラーを犯しやすい理由

LLM のトレーニング言語教材は Linux/macOS 環境に基づいており、Bash 構文が圧倒的に多数を占めています。 AI が Windows コマンドを生成すると、簡単、簡単、使いやすくなります。

给 AI が Windows コマンド プロンプトを生成:対象シェル(cmd / PowerShell / Git Bash)を明確に指定し、「不含空格的パラメータ不加引号」を要求します。

参照



Source link

By 政権

Leave a Reply

Your email address will not be published. Required fields are marked *