問題現象
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)を明確に指定し、「不含空格的パラメータ不加引号」を要求します。