function cc { param ([Parameter(Position=0, ValueFromRemainingArguments=$true)][string[]]$UserArgs) $defaultFile = "$HOME\.claude\settings.json" $selected = $env:CLAUDE_DEFAULT # 完全靠环境变量控制默认(可为空) $actualArgs = @() $i = 0 # 第一参数:支持 modelscope / -modelscope / -anything if ($UserArgs.Count -gt 0) { $first = $UserArgs[0] if ($first -match '^-?(.+)') { $selected = $matches[1] $i = 1 } } for (; $i -lt $UserArgs.Count; $i++) { $actualArgs += $UserArgs[$i] } # ============ 超级详细日志 ============ Write-Host "========== cc 日志 ==========" -ForegroundColor DarkGray Write-Host "你输入的完整参数: $($UserArgs -join ' ')" -ForegroundColor Gray Write-Host "识别到的后缀: $selected" -ForegroundColor Gray Write-Host "环境变量默认后缀: '$env:CLAUDE_DEFAULT'" -ForegroundColor Gray $settingsFile = $null $log = "" if ($selected) { $candidate = "$HOME\.claude\settings.json-$selected" if (Test-Path $candidate) { $settingsFile = $candidate $log = "成功加载专用配置 → $settingsFile" } else { $log = "专用配置不存在 → $candidate" } } else { $log = "未指定后缀" } if (-not $settingsFile -and (Test-Path $defaultFile)) { $settingsFile = $defaultFile $log += " → 回退到默认配置 → $defaultFile" } elseif (-not $settingsFile) { $log += " → 无任何配置文件,将直接运行 claude(无 --settings 参数)" } Write-Host $log -ForegroundColor Yellow Write-Host "最终实际使用的配置文件: $($settingsFile ? $settingsFile : '无')" -ForegroundColor Green Write-Host "===============================" -ForegroundColor DarkGray # ====================================== $baseCmd = @('claude') if ($settingsFile) { $baseCmd += '--settings', $settingsFile } if ($actualArgs.Count -gt 0) { # 一次性发送 $cmd = $baseCmd + $actualArgs $cmdStr = $cmd | ForEach-Object { '"{0}"' -f $_ } Write-Host "Executing → $cmdStr" -ForegroundColor White if ($settingsFile) { & claude --settings $settingsFile @actualArgs } else { & claude @actualArgs } } else { # 交互模式 Write-Host "进入交互模式(按 Ctrl+C 退出)" -ForegroundColor White if ($settingsFile) { & claude --settings $settingsFile } else { & claude } } } function claude-modelscope-default { # 1. 构造要执行的完整命令数组 $cmd = @('claude', '--settings', "$HOME\.claude\settings.json-mscope") + $args # 2. 打印命令(用双引号包裹每个参数,方便阅读) $cmdStr = $cmd | ForEach-Object { '"{0}"' -f $_ } Write-Host "Executing: $cmdStr" -ForegroundColor Cyan # 3. 真正执行(使用 & 调用运算符 + 参数展开) & $cmd[0] $cmd[1..($cmd.Count-1)] } function claude-modelscope { $env:ANTHROPIC_AUTH_TOKEN = $env:MODELSCOPE_API_KEY cc modelscope $args } function claude-streamlake { $env:ANTHROPIC_AUTH_TOKEN = $env:WQ_API_KEY cc streamlake $args } function claude-minimax{ $env:ANTHROPIC_AUTH_TOKEN = $env:MINIMAX_API_KEY cc minimax $args } function claude-minimax{ $env:ANTHROPIC_AUTH_TOKEN = $env:MINIMAX_API_KEY cc minimax $args } function claude-longcat { $env:ANTHROPIC_AUTH_TOKEN = $env:LONGCAT_API_KEY cc longcat $args }