DeepV Code CLI 的 --workdir 参数完全支持包含空格和特殊字符的路径。内部使用 Node.js 原生 API,自动处理所有路径复杂性。
以下情况已通过实际测试验证:
- ✅ 路径规范化 (
path.normalize()) - 完全支持空格 - ✅ 路径绝对化 (
path.resolve()) - 完全支持空格 - ✅ 目录验证 (
fs.statSync()) - 完全支持空格 - ✅ 目录切换 (
process.chdir()) - 完全支持空格
虽然 CLI 内部完全支持空格,但 用户需要在命令行中正确引用包含空格的路径。这不是我们的限制,而是 shell 的要求。
REM 使用双引号(推荐)
dvcode --workdir "C:\Program Files\My Project"
REM 处理混合路径
dvcode --workdir "D:\My Documents\Project Folder"
REM 在批处理脚本中使用变量
set WORKDIR=C:\Program Files\My Application
dvcode --workdir "%WORKDIR%"
REM 组合其他参数
dvcode --workdir "C:\My Projects\urgent-fix" --prompt "修复这个bug" --yolo# 双引号方式
dvcode --workdir "C:\Program Files\My Project"
# 单引号方式
dvcode --workdir 'C:\Program Files\My Project'
# 使用变量
$workdir = "C:\Program Files\My Application"
dvcode --workdir $workdir
# 动态构建路径
dvcode --workdir "$env:USERPROFILE\Documents\My Project"
# 循环处理多个项目
@("Project A", "Project B", "Project C") | ForEach-Object {
$path = "C:\Projects\$_"
dvcode --workdir $path --prompt "Check this"
}@echo off
REM 使用变量和引号的最佳实践
set MY_PROJECT=C:\Program Files\My Project
echo Analyzing: %MY_PROJECT%
dvcode --workdir "%MY_PROJECT%" --prompt "Code review" --yolo
REM 遍历多个项目
for /d %%D in (C:\Projects\*) do (
dvcode --workdir "%%D" --prompt "Check" --yolo
)# 方法 1:双引号(推荐)
dvcode --workdir "/home/user/My Documents/Project"
# 方法 2:单引号
dvcode --workdir '/home/user/My Documents/Project'
# 方法 3:反斜杠转义(不推荐,但也支持)
dvcode --workdir /home/user/My\ Documents/Project
# 使用变量
PROJECT_DIR="/home/user/My Documents/Project"
dvcode --workdir "$PROJECT_DIR"
# 使用 ~ 展开
dvcode --workdir "~/My Documents/Project"
# 组合其他参数
dvcode --workdir "/opt/my application (v1.0)" --all-files --yolo#!/bin/bash
# 建议做法:使用变量和引号
MY_PROJECT="/home/user/My Documents/Project"
dvcode --workdir "$MY_PROJECT" --prompt "Code review" --yolo
# 遍历多个项目
for dir in /home/user/My\ Documents/*; do
if [ -d "$dir" ]; then
dvcode --workdir "$dir" --prompt "Audit code" --yolo
fi
done
# 从配置文件读取路径
WORKDIR=$(grep "^workdir=" config.ini | cut -d'=' -f2)
dvcode --workdir "$WORKDIR" --yolo# Fish shell 处理空格路径
set MY_PROJECT "/home/user/My Documents/Project"
dvcode --workdir $MY_PROJECT
# 函数方式
function dvcode_workspace --description "Run DeepV on workspace"
set workdir "/home/user/$argv[1]"
dvcode --workdir "$workdir" --all-files --yolo
end
# 使用函数
dvcode_workspace "My Project"以下特殊字符在路径中完全受支持:
| 字符 | 支持 | 示例 |
|---|---|---|
| 空格 | ✅ | ./My Project |
| 括号 | ✅ | ./project (v1.0) |
| 中文字符 | ✅ | ./我的项目 |
| 连字符 | ✅ | ./my-project |
| 下划线 | ✅ | ./my_project |
| 点号 | ✅ | ./my.project |
| @ 符号 | ✅ | ./project@v1 |
| 数字 | ✅ | ./project123 |
# Windows
dvcode --workdir "C:\项目\2024年项目"
dvcode --workdir "C:\Code\project@v1.0 (backup)"
# Linux
dvcode --workdir "/home/user/2024-projects"
dvcode --workdir "/home/user/项目 (存档)"# ❌ 错误 - 不会工作
dvcode --workdir /home/user/My Documents/Project
# ✅ 正确 - 使用引号
dvcode --workdir "/home/user/My Documents/Project"错误信息:
Error: --workdir path does not exist: /home/user/My
原因:Shell 在空格处分割参数。
# ❌ 错误 - 混合引号
dvcode --workdir "C:\Program Files\My 'Project'
# ✅ 正确 - 统一使用一种引号
dvcode --workdir "C:\Program Files\My Project"REM ❌ 错误 - 在批处理中需要转义百分号
set path=C:\Program Files\My Project%1
dvcode --workdir %path%
REM ✅ 正确 - 使用双引号
set path=C:\Program Files\My Project
dvcode --workdir "%path%"| 场景 | 语法 | 示例 |
|---|---|---|
| CMD 中直接使用 | "path with spaces" |
dvcode --workdir "C:\My Projects\app" |
| CMD 中使用变量 | "%VAR%" |
dvcode --workdir "%MYPATH%" |
| PowerShell 直接使用 | "path" 或 'path' |
dvcode --workdir "C:\My Projects\app" |
| PowerShell 使用变量 | $var |
dvcode --workdir $mypath |
| 批处理脚本 | "%VAR%" |
dvcode --workdir "%projectdir%" |
| 场景 | 语法 | 示例 |
|---|---|---|
| Bash 直接使用 | "path" 或 'path' |
dvcode --workdir "/home/user/My Project" |
| Bash 使用变量 | "$var" |
dvcode --workdir "$mypath" |
| Bash 转义空格 | path\ with\ spaces |
dvcode --workdir /home/user/My\ Project |
| Bash 脚本中 | "$var" |
dvcode --workdir "$mypath" |
| Fish shell | $var |
dvcode --workdir $mypath |
- name: DeepV Code Analysis
run: dvcode --workdir "${{ github.workspace }}" --prompt "Code review" --yolodeepv_analysis:
script:
- dvcode --workdir "$CI_PROJECT_DIR" --prompt "Check" --yolostage('DeepV Analysis') {
steps {
sh '''
PROJECT_DIR="${WORKSPACE}"
dvcode --workdir "$PROJECT_DIR" --prompt "Audit" --yolo
'''
}
}# Dockerfile
ENTRYPOINT ["dvcode", "--workdir", "/workspace"]
# 使用
docker run -v /my/project:/workspace deepv-code# ✅ 好
dvcode --workdir "/path/with spaces"
dvcode --workdir "$PROJECT_PATH"
# ❌ 避免
dvcode --workdir /path/with spaces# ✅ 推荐 - 易于维护
PROJECT="/home/user/My Documents/Project"
dvcode --workdir "$PROJECT" --yolo
# ❌ 避免 - 容易出错
dvcode --workdir "/home/user/My Documents/Project" --yolo#!/bin/bash
# ✅ 好的实践
PROJECT_PATH="/home/user/My Documents/Project"
if [ ! -d "$PROJECT_PATH" ]; then
echo "Error: Project path does not exist: $PROJECT_PATH"
exit 1
fi
dvcode --workdir "$PROJECT_PATH" --yolo# ✅ 推荐 - 使用规范格式
dvcode --workdir "/home/user/my-project" # Linux
dvcode --workdir "C:\Users\Name\my-project" # Windows
# ⚠️ 可以用但不规范
dvcode --workdir "C:/Users/Name/my-project" # 混合格式(会被规范化)-
在 CLI 启动时查看窗口标题 - 应该显示正确的目录名
-
使用
--debug标志查看日志dvcode --workdir "/path/with spaces" --debug --prompt "test"
-
检查 GEMINI.md 文件加载 - 应该从指定目录加载
如果遇到问题,CLI 会显示具体的错误信息:
Error: --workdir path does not exist: /invalid/path/name
这清楚地表明问题所在,可以帮助快速调试。
✅ 完全支持 包含空格的路径
✅ 完全支持 特殊字符和中文
✅ 完全支持 长路径名