現在、Brave ブラウザを使用しています。ブックマークがたくさんあるので、それらを個別のリンクとして PC のフォルダーにダウンロードしたいと考えています。
どうすればこれを実現できるでしょうか?
すべてのブックマークをエクスポートできましたが、単一の HTML ファイルとして保存されます。ファイルを分析してリンクを個別に保存する方法はあるでしょうか?
答え1
$bookmarks_file
これを実行するための簡単な PowerShell スクリプトを作成しました。必要な場所を更新して$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を使用してショートカットを作成します