原文(日本語に翻訳)
一時ディレクトリのパスにtやnのような文字が含まれ、エスケープシーケンスとして誤って解釈されることで、Windows上でbashコマンドが失敗する問題を修正しました。
原文(英語)
Fixed bash commands failing on Windows when temp directory paths contained characters like t or n that were misinterpreted as escape sequences
概要
Windows環境で、一時ディレクトリのパスに特定の文字(t, n, rなど)が含まれている場合、これらがエスケープシーケンス(\t=タブ、\n=改行、\r=キャリッジリターン)として誤って解釈され、bashコマンドが失敗する問題が修正されました。
問題の詳細
問題が発生するパスの例
C:\Users\nathan\AppData\Local\Temp
↑ \n が改行として解釈される
C:\projects\testproject\tmp
↑ \t がタブとして解釈される
C:\data\reports\output
↑ \r がキャリッジリターンとして解釈される修正前の動作
bash
# ユーザー名が "nathan" の場合
temp_file = "C:\Users\nathan\AppData\Local\Temp\claude_temp.txt"
→ "C:\Users
athan\..." # \n が改行に変換される
❌ Error: Invalid path
❌ Bash command failed修正後の動作
bash
# パスを正しくエスケープ
temp_file = "C:\\Users\\nathan\\AppData\\Local\\Temp\\claude_temp.txt"
→ 正しいパスとして認識される
✓ Bash command executes successfully実践例
ユーザー名に "n" を含む場合
ユーザー名: nathan, johndoe, janeなど
修正前:
Working directory: C:\Users\nathan\...
❌ All bash commands fail
Error: Path not found修正後(v2.1.7):
Working directory: C:\Users\nathan\...
✓ All bash commands work correctlyプロジェクトパスに "t" を含む場合
プロジェクトパス: C:\projects\testapp\, C:\data\reports\
修正前:
bash
$ claude "Run npm install"
❌ Error: Invalid working directory修正後(v2.1.7):
bash
$ claude "Run npm install"
✓ npm install runs successfully一時ファイル操作
bashツールが一時ファイルを作成する際:
修正前:
Creating temp file at: C:\Users\nathan\AppData\Local\Temp\
❌ File creation failed修正後(v2.1.7):
Creating temp file at: C:\Users\nathan\AppData\Local\Temp\
✓ File created successfully影響を受けるシナリオ
この修正により、以下のシナリオが改善されました:
- ユーザー名に特定文字を含む: nathan, anna, robert, など
- プロジェクトパスに特定文字を含む: test, data, reports, など
- 一時ディレクトリ:
\temp,\tmpなどのパス - すべてのbashコマンド: git, npm, python, など全てが影響
技術的な改善点
- パスエスケープ: Windowsパスの
\を\\に正しくエスケープ - 自動検出: エスケープが必要な文字を自動的に検出
- 透過的な動作: ユーザーは何も意識する必要がない
注意点
- Windows固有: この問題と修正はWindows環境のみに関連します
- 後方互換性: 既存のコードに影響はありません
- 手動回避策不要: v2.1.7以降、手動でパスをエスケープする必要はありません