.webloc zu .url konvertieren per Droplet oder Ordneraktion - Hilfe!

M

masdeirf

Mitglied
Thread Starter
Dabei seit
25.12.2003
Beiträge
24
Reaktionspunkte
1
Hallo Zusammen,

da ich nicht nur vor dem Mac sitze aber am Mac hauptsächlich Safari nütze und der nur .webloc kann habe ich nach einer Lösung gesucht um .webloc Dateien in .url Dateien zu konvertieren.

Wünschenswert wäre ein Droplet und ein Script für Ordneraktionen

Die Lösung habe ich auch gefunden:
http://www.macosxhints.com/article.php?story=20040728185233128

leider bekomme ich immer die Fehlermeldung:
"could not delete the file currently at the destination (-35)"

Ein Rechteproblem ist es aber nicht, es passiert egal wo ich das Script ausführe und manuell kann ich die Dateien löschen.

Jetzt nütze ich folgendes Script um direkt aus Safari Links als .url zu speichern:
HTML:
try
	tell application "Safari"
		set theURL to URL of (document of window 1)
		set theTitle to name of window 1
	end tell
	-- Pfade ändern: kopieren aus als Unix aus Path Finder
	do shell script "echo \"[InternetShortcut]\" > /Volumes/work/download/\"" & theTitle & ".url\""
	do shell script "echo \"URL=" & theURL & "\" >> /Volumes/work/download/\"" & theTitle & ".url\""
	
on error x
	activate me
	display dialog x
end try

DANKE und schöne Grüsse
 

Anhänge

  • Bild 1.pdf
    15,4 KB · Aufrufe: 139
Zuletzt bearbeitet:
Ordneraktion
Code:
on adding folder items to this_folder after receiving added_items
	set theUrl to ""
	repeat with i from 1 to number of items of added_items
		set theFile to item i of added_items
		try
			tell application "Finder" to set theUrl to theFile's location
			do shell script "echo '[InternetShortcut]" & (ASCII character 10) & ¬
				"URL=" & theUrl & "' > " & quoted form of POSIX path of theFile & ".url"
		end try
	end repeat
end adding folder items to

Droplet
Code:
on open theFiles
	set theUrl to ""
	repeat with i from 1 to number of items of theFiles
		set theFile to item i of theFiles
		try
			tell application "Finder" to set theUrl to theFile's location
			do shell script "echo '[InternetShortcut]" & (ASCII character 10) & ¬
				"URL=" & theUrl & "' > " & quoted form of POSIX path of theFile & ".url"
                --on error x
			--display dialog x
		end try
	end repeat
end open

on run
	set theFiles to choose file with multiple selections allowed --of type {"ilht"} 
	open (theFiles as list)
end run

.url Datei wird im selben Pfad wie .webloc Datei erstellt
für Mitteilung bei Fehlern wie falscher Dateityp, keine Schreibrechte
on error Handler aktivieren

_________________________________________________________

Code:
tell application "Safari" to set theUrl to URL of (document of window 1)
URL ist nicht immer definiert zB nicht für Fenster, in denen der Quelltext angezeigt wird
 
SUPER, DANKE w2lab :D

würde das automatische löschen des .webloc File nach anlegen des .url File auch gehen?


Gruss
 
Hey,

bei der Suche nach einer Lösung zu dem o.g. Problem bin ich u.A. hier auf diesen Thread gestoßen.
Könnt ihr mir sagen, wie das Skript für einen Dienst aussehen würde? Also Rechtsklick auf die .webloc Datei -> Dienste -> Dienst auswählen, der dann eine .url Datei erzeugt und die .webloc Datei löscht.

So trivial, wie ich dachte, geht es leider nicht:
Code:
on run {input, parameters}
	
	set theUrl to ""
	repeat with i from 1 to number of items of added_items
		set theFile to item i of added_items
		try
			tell application "Finder" to set theUrl to theFile's location
			do shell script "echo '[InternetShortcut]" & (ASCII character 10) & ¬
				"URL=" & theUrl & "' > " & quoted form of POSIX path of theFile & ".URL"
		end try
	end repeat
	
	return input
end run

Wäre sehr nett, wenn ihr mir hier weiterhelfen könntet.
Danke und noch ein gutes Wochenende!

LG, thowi
 
Zuletzt bearbeitet:
Hallo,

ersetze added_items durch input

Gruß
 
Perfekt, danke dir! Funktioniert prima.
Kannst du mir auch sagen, wie ich dann das .webloc nach erfolgreicher Abarbeitung lösche?
Hatte gedacht einfach mit "delete theFile" direkt am Ende vor "end try" hätte genügt - funktioniert aber leider nicht.

Was ich auch noch gern einbauen würde ist sowas wie "if name extension of input is "webloc" then" direkt vor "set theUrl to """ - führt aber leider auch zu einem Fehler... :/
 
Hallo,

dein Skript kann ja gleich mehrere ausgewählte Dateien umwandeln, deshalb sollte die If Einschränkung in die repeat-Schleife. Und da Datei-Endung eine Finder Angelegenheit ist, muss es auch dem Finder gesagt werden ... genau so wie das in-den-Papierkorb-legen.
tell app "Finder"
delete theFile
end tell

PS:
Es gibt übrigens Finder Automator Aktionen, um Objekte zu filtern und um sie in den Papierkorb zu legen...

Gruß
 
Perfekt, danke dir. Guter Tipp mit den Aktionen, die haben mir weiter geholfen.
 
Ich stehe aktuell wieder vor dem Problem. Ich habe bislang den Webloc Finangler genutzt, der aber nun mit Sonoma nicht mehr geht. Ich habe aber bereits einen Ansatz:

Wenn ich per Terminal zu dem Ordner navigiere, der die .webloc Datei enthält und dort den folgenden Code ausführe, erhalte ich eine funktionierende .url Datei:

Bash:
for f in *.webloc; do
    URL=$(python -c "import plistlib; print(plistlib.readPlist('$f')['URL'])")
    echo -e "[InternetShortcut]\nURL=$URL" > "${f%.webloc}.url"
done

Allerdings möchte ich nicht immer im Terminal rumhantieren sondern würde gerne per Schnellaktion im Finder Dateien von .webloc nach .url konvertieren.

Alle meine Bemühungen, dieses Skript von oben in eine Schnellaktion zu bekommen, sind gescheitert. Bei jedem Versuch erhalte ich nach Öffnen der .url Datei die folgende Fehlermeldung:
Der Dokumentinhalt ist nicht lesbar oder liegt im falschen Format vor.
Keine Ahnung warum. Ich bekomme es nicht hin. Hat jemand von euch eine Idee?

Ich bin noch auf der Sonoma 14.0 Version. Danke euch!
 
Du musst vollständige Pfade in Schnellaktionen/Diensten angeben, da die PATH-Variable nicht gesetzt ist. Zudem ist "python" nicht enthalten, sondern "python3"

Wenn es das direkt Speichern als *.url sein darf, dann wäre diese Schnellaktion was. Einfach in die URL in Safari klicken, so dass sie markiert ist -> Rechtsklick und die Schnellaktion wählen. Die *.url Datei ist dann auf dem Desktop

Hier der screenshot mit den notwendigen Einstellungen der Schnellaktione

Bildschirmfoto 2023-10-31 um 15.40.49.jpg

und hier das script

Code:
for f in "$@"
do
    url=$(echo "$f" | sed "s|.*http.*//||;s|/|-|g;s|-$||")
    echo -e "[InternetShortcut]\nURL=$f" > "$HOME/Desktop/$url.url"
done
 
  • Gefällt mir
Reaktionen: Difool
Danke dir @lisanet für die Idee - das klappt auch soweit, leider lässt sich die url Datei aber nicht öffnen. Ist nun wieder mein altbekanntes Problem, was ich die ganze Zeit schon habe. Sobald ich die .url Datei öffnen will, bekomme ich die Meldung "Der Dokumentinhalt ist nicht lesbar oder liegt im falschen Format vor."
Hast du eine Idee, woran das liegen kann?
 
Danke dir @lisanet für die Idee - das klappt auch soweit, leider lässt sich die url Datei aber nicht öffnen. Ist nun wieder mein altbekanntes Problem, was ich die ganze Zeit schon habe. Sobald ich die .url Datei öffnen will, bekomme ich die Meldung "Der Dokumentinhalt ist nicht lesbar oder liegt im falschen Format vor."
Hast du eine Idee, woran das liegen kann?
Wie öffnest du die denn?
Doppelklick startet bei mir den eingetragenen Standard-Browser und ruft den URL auf und zeigt die Website.
cmd+O ebenso. Auch via Kontext-Menü > Öffnen mit > Safari.

Öffne ich die .url-Datei selbst, bsw. auf Icon von BBEdit gezogen, wird sie geöffnet und zeigt z.B.:
Code:
[InternetShortcut]
URL=https://www.macuser.de
 
Jepp genau. Per Doppelklick -> dann kommt sofort die Meldung
 
Schau mal mit cmd+i, ob du ggf. ein Programm zuweisen solltest, mit welchem diese Dateien immer geöffnet werden sollen.
 
  • Gefällt mir
Reaktionen: dg2rbf
Witzigerweise ausgegraut, kann ich nix verändern. Ist aber zum Safari bzw. Standardbrowser zugewiesen. Wie gesagt, wenn ich ein .url Dokument via Terminal generiere und per Doppelklick öffne, ist alles fein.

Bildschirmfoto 2023-11-03 um 10.50.20.png
 
Zurück
Oben Unten