Список VS Code недавних рабочих областей из командной строки - PullRequest
0 голосов
/ 18 января 2019

Открытие нового экземпляра кода VS и затем нажатие ctrl + R показывает список почти всех недавно открытых рабочих областей.

Как я могу получить этот список из командной строки?

Они хранятся в json или текстовом файле?

1 Ответ

0 голосов
/ 19 января 2019

В системе Windows 10 следующий скрипт powershell возвращает пути для каждого сохраненного файла рабочей области кода VS, отсортированного в порядке последнего доступа. Измените переменную пути $WorkSpacesPath соответственно.

РЕДАКТИРОВАТЬ , чтобы отразить последние изменения в ядре vscode и то, как оно сохраняет ссылки на файлы рабочей области. Возможно, лучший способ сделать это, но этого будет достаточно.

$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
...