You need to enable JavaScript to run this app. 如何通过命令行获取VS Code当前窗口已打开的所有文件夹列表
优惠活动
大模型
产品
解决方案
定价
更多

如何通过命令行获取VS Code当前窗口已打开的所有文件夹列表

VS Code 官方提供的code命令行工具确实没有内置查询当前已打开文件夹列表的功能,你从code --help中查询到的两个相关参数仅用于控制文件夹打开逻辑,不支持查询操作,翻译如下:

-a --add <folder>    将指定文件夹添加到最近活跃的窗口
  -r --reuse-window    强制在已打开的窗口中打开文件或文件夹
解决方案

方案1:通过进程启动参数获取当前打开的文件夹

直接读取VS Code进程的启动命令行参数,提取传入的文件夹路径,适用于所有平台:

Windows(PowerShell执行)

Get-CimInstance -ClassName Win32_Process -Filter "Name = 'Code.exe'" | 
Where-Object { $_.CommandLine -match '--folder-uri' } | 
ForEach-Object { 
    $_.CommandLine | Select-String -Pattern '--folder-uri file:///([^ ]+)' -AllMatches | 
    ForEach-Object { $_.Matches.Groups[1].Value -replace '/', '\' } 
} | Sort-Object -Unique

macOS(终端执行)

ps aux | grep 'Code.app' | grep -- '--folder-uri' | 
sed -e 's/.*--folder-uri file:\/\/\///' -e 's/ .*//' -e 's/%20/ /g' | uniq

Linux(终端执行)

ps aux | grep code | grep -- '--folder-uri' | 
sed -e 's/.*--folder-uri file:\/\/\///' -e 's/ .*//' -e 's/%20/ /g' | uniq

注意:如果使用VS Code预览版(Insider),需要把命令中的进程名替换为Code - Insiders.exe(Windows)、Code - Insiders.app(macOS)、code-insiders(Linux)。

方案2:通过工作区存储文件获取(覆盖所有历史+当前打开的文件夹)

VS Code会把所有打开过的工作区信息存在本地配置目录下,读取该目录下的workspace.json文件即可拿到完整的文件夹路径,精准度更高,支持获取运行中手动添加到工作区的文件夹:
各系统存储路径:

  • Windows:%APPDATA%\Code\User\workspaceStorage\
  • macOS:~/Library/Application Support/Code/User/workspaceStorage/
  • Linux:~/.config/Code/User/workspaceStorage/

以Linux为例,可用以下命令直接提取所有路径:

find ~/.config/Code/User/workspaceStorage -name "workspace.json" -exec jq -r '.folder' {} \; | grep -v null | uniq

提示:没有安装jq的话,也可以直接进入对应文件夹手动查看workspace.json文件的folder字段值。

内容的提问来源于stack exchange,提问作者Carlos Pinzón

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 19:48:04