Wie speichere ich die Lesezeichen eines Browsers einzeln in einem PC-Ordner?

Wie speichere ich die Lesezeichen eines Browsers einzeln in einem PC-Ordner?

Ich verwende derzeit den Brave-Browser. Ich habe viele Lesezeichen und möchte diese in einen Ordner auf meinem PC herunterladen, ABER als einzelne Links.

Wie kann ich das erreichen?

Ich habe es geschafft, alle meine Lesezeichen zu exportieren, aber sie werden als einzelne HTML-Datei gespeichert. Vielleicht gibt es eine Möglichkeit, die Datei zu analysieren und die Links einzeln zu speichern?

Antwort1

Ich habe ein kurzes PowerShell-Skript zusammengestellt, das dies für Sie erledigt. Sie müssen es aktualisieren $bookmarks_fileund $bookmarks_folderdorthin verweisen, wo Sie es benötigen.

Dies funktioniert leider nur unter Windows und hilft Ihnen nicht auf Ihrem Mac, da dieser ein anderes Verknüpfungsformat hat und ich keinen Mac zum Testen habe.

$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()
}

Erläuterung

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

    Diese Zeile liest die Links und Linktitel aus der bookmarks.htmlDatei in ein Array.

  • foreach ($match in $matches)wird das Array durchsehen

  • Write-Host $match.Groups[1].Value' '$match.groups[2].Valueschreibt die URL und den Titel zur Referenz in die Konsole
  • $filename = $match.groups[2].Valuespeichert den Titel des Favoriten als Dateinamen
  • $invalidChars = [IO.Path]::GetInvalidFileNameChars() -join '' $re = "[{0}]" -f [RegEx]::Escape($invalidChars) $filename = $filename -replace $reersetzt alle ungültigen Zeichen im Dateinamen
  • $location = "$($bookmarks_folder)\\$($filename).lnk"erstellt den vollständigen Pfad, einschließlich des Verzeichnisses
  • $WshShell = New-Object -ComObject WScript.Shell $Shortcut = $WshShell.CreateShortcut("$location") $Shortcut.TargetPath = $match.Groups[1].Value $Shortcut.Save()erstellt die Verknüpfung unter Verwendung des generierten Dateipfads und der URL

verwandte Informationen