我目前正在使用 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 创建快捷方式