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_file
und $bookmarks_folder
dorthin 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.html
Datei in ein Array.foreach ($match in $matches)
wird das Array durchsehenWrite-Host $match.Groups[1].Value' '$match.groups[2].Value
schreibt die URL und den Titel zur Referenz in die Konsole$filename = $match.groups[2].Value
speichert den Titel des Favoriten als Dateinamen$invalidChars = [IO.Path]::GetInvalidFileNameChars() -join '' $re = "[{0}]" -f [RegEx]::Escape($invalidChars) $filename = $filename -replace $re
ersetzt 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