2016-10-13 9 views
2

Тот же вопрос существует для Python здесь: How can I get the Dropbox folder location programmatically in Python?, или здесь для OSX: How to get the location of currently logined Dropbox folderКак получить папку Dropbox в Powershell в Windows,

То же самое в Powershell. Мне нужен путь DropBox для копирования файлов на него (создание программного обеспечения, а затем копирование его в Dropbox для совместного использования с командой).

ответ

3

Эта страница помощи Dropbox говорит нам, где эта информация хранится, например, в файле JSon в AppData пользователя: https://www.dropbox.com/help/4584

function GetDropBoxPathFromInfoJson 
{ 
    $DropboxPath = Get-Content "$ENV:LOCALAPPDATA\Dropbox\info.json" -ErrorAction Stop | ConvertFrom-Json | % 'personal' | % 'path' 
    return $DropboxPath 
} 

Линия выше взята из: https://www.powershellgallery.com/packages/Spizzi.Profile/1.0.0/Content/Functions%5CProfile%5CInstall-ProfileEnvironment.ps1 Обратите внимание, что это Безразлично Если у вас есть учетная запись Dropbox, или у вас есть оба. Он просто использует личный.

Вы можете использовать эту базу папку Dropbox, чтобы построить свой окончательный путь, например:

$targetPath = Join-Path -Path (GetDropBoxPathFromInfoJson) -ChildPath 'RootDropboxFolder\Subfolder1\Subfolder2' 
if (-not (Test-Path -Path $targetPath)) { throw "Path '$targetPath' not found!" } 

-

Альтернативный способ использует файл host.db, как показано на этой странице: http://bradinscoe.tumblr.com/post/75819881755/get-dropbox-path-in-powershell

$base64path = gc $env:appdata\Dropbox\host.db | select -index 1 # -index 1 is the 2nd line in the file 
$dropboxPath = [System.Text.Encoding]::ASCII.GetString([System.Convert]::FromBase64String($base64path)) # convert from base64 to ascii