从命令行列出VS Code最近的工作空间

时间:2019-01-17 21:10:27

标签: visual-studio-code vscode-settings

打开一个新的VS Code实例,然后按ctrl + R将显示最近打开的几乎所有工作区的列表。

如何从命令行获取此列表?

它们存储在json或文本文件中吗?

1 个答案:

答案 0 :(得分:0)

在Windows 10系统上,以下powershell脚本返回按上次访问顺序排序的每个保存的VS Code工作空间文件的路径。相应地更改$WorkSpacesPath路径变量。

编辑,以反映对vscode core的最新更改以及它如何保存对工作区文件的引用。也许是一种更好的方法,但这足够了。

$WorkSpacesPath = "C:\Users\UserName\AppData\Roaming\Code\User\workspaceStorage"

$ws =  (
    Get-Item -Path $WorkSpacesPath\*\*.json | `
    Foreach-Object  { 
        (Get-Content ($_.FullName) | ConvertFrom-Json).configuration `
        -Replace 'file:///|[\s]+', '' `
        -Replace '/', '\' `
        -Replace '%3a', ':' `
        -Replace '%20', ' ' `
        }
    )

## BEGIN EDIT
$ws +=  (
    (Get-Item -Path $CodeWorkSpaces\*\*.json | `
    Foreach-Object  { 
        (Get-Content ($_.FullName) | ConvertFrom-Json).configuration.fsPath `
        }
    ) | `
    Where-Object { $_ } | `
    Get-Unique -AsString | `
    Foreach-Object {
        Get-Item -Path $_ -EA SilentlyContinue | `
        Select-Object -Property BaseName, FullName, LastAccessTime  `
    } | `
    Sort-Object -Property LastAccessTime `
) 
## END EDIT

 $ws | `
    Where-Object { $_ } | `
    Get-Unique -AsString | `
    Foreach-Object {
        Get-Item -Path $_ -EA SilentlyContinue | `
        Select-Object -Property BaseName, FullName, LastAccessTime  `
    } | `
    Sort-Object -Property LastAccessTime 

$idx = 0
$ws | Foreach-Object {$_ | Add-Member @{Index = $idx } -Force; $idx++ } 

$ws | Select-Object -Property Index, BaseName, LastAccessTime, FullName