如何将浏览器书签单独保存到 PC 文件夹中?

如何将浏览器书签单独保存到 PC 文件夹中?

我目前正在使用 Brave 浏览器。我有很多书签,想将它们下载到我电脑上的文件夹中,但以单独的链接形式。

我怎样才能做到这一点?

我已成功导出所有书签,但保存为单个 html 文件。也许有办法分析文件并单独保存链接?

答案1

我编写了一个快速的 PowerShell 脚本来帮您完成此操作。您需要更新$bookmarks_file$bookmarks_folder指向您需要的位置。

不幸的是,这只适用于 Windows,并且对你的 Mac 没有帮助,因为它有不同的快捷方式格式,而我没有 Mac 可以测试。

$bookmarks_file = "bookmarks.html"
$bookmarks_folder = "C:\Users\Someone\Desktop\Shortcuts"
$matches = Get-Content $bookmarks_file -Raw | Select-String -Pattern 'HREF="([^"]*)"[^>]*>([^<]*)<'  -AllMatches | % { $_.Matches }

foreach ($match in $matches) {
    Write-Host $match.Groups[1].Value' '$match.groups[2].Value
    $filename = $match.groups[2].Value
    $invalidChars = [IO.Path]::GetInvalidFileNameChars() -join ''
    $re = "[{0}]" -f [RegEx]::Escape($invalidChars)
    $filename = $filename -replace $re
    $location = "$($bookmarks_folder)\\$($filename).lnk"
    $WshShell = New-Object -ComObject WScript.Shell
    $Shortcut = $WshShell.CreateShortcut("$location")
    $Shortcut.TargetPath = $match.Groups[1].Value
    $Shortcut.Save()
}

解释

  • $matches = Get-Content $bookmarks_file -Raw | Select-String -Pattern 'HREF="([^"]*)"[^>]*>([^<]*)<' -AllMatches | % { $_.Matches }

    此行将文件中的链接和链接标题读bookmarks.html入数组。

  • foreach ($match in $matches)将查看数组

  • Write-Host $match.Groups[1].Value' '$match.groups[2].Value将 URL 和标题写入控制台以供参考
  • $filename = $match.groups[2].Value将收藏夹的标题保存为文件名
  • $invalidChars = [IO.Path]::GetInvalidFileNameChars() -join '' $re = "[{0}]" -f [RegEx]::Escape($invalidChars) $filename = $filename -replace $re替换文件名中的任何非法字符
  • $location = "$($bookmarks_folder)\\$($filename).lnk"创建完整路径,包括目录
  • $WshShell = New-Object -ComObject WScript.Shell $Shortcut = $WshShell.CreateShortcut("$location") $Shortcut.TargetPath = $match.Groups[1].Value $Shortcut.Save()使用生成的文件路径和 URL 创建快捷方式

相关内容