Hämta mappnamn och köra terminalkommando med AppleScript eller Automator

Tråden skapades och har fått 2 svar. Det senaste inlägget skrevs .
1

När jag lägger till filmer i mitt arkiv så brukar jag skapa en symlink till mappen som innehåller filmen i en annan mapp för att jag snabbt ska kunna komma åt alla filmer som jag inte sett.

Jag anvädner just symlinks istället för vanlga alias för att in mediaspelare som ansluter via NFS inte fattar vanliga alias.

Så här ser det ut i terminalen:
ln -s "../Movies/Min Film" "/Volumes/Wstripe/Files/Video/Movies unseen/Min Film"

Det är meckigt att alltid dra upp terminalen och hålla på och bygga ihop den unika raden för varje film som ska exekveras. Det enda som ändras mellan gångerna är "Min Film". Och nu funderar jag på ett sätt att halv-automatisera det här.

Helst skulle jag vilja ha ett script som jag kan droppa "Min Film"-mappen på. Scriptet läser mapp-namnet och bygger ihop raden och exekverar.

Har googlat en del och läst lite artiklar och forum, men jag har inte fattat hur jag ska göra. Framförallt har jag inte fattat hur jag ska kunna skicka in mappnamnet som parameter till scriptet. Vill ju köra drag and drop, men i värsta fall kan jag kopiera in det om scriptet frågar efter en text-sträng.

  • Medlem
  • International user
  • 2007-12-02 03:17

Well, det här skriptet tar en valfri fil som du släpper på den och skapar en symlink i målmappen du anger. Det ska gå rätt lätt att modifiera det till att bli en folder action istället så att allt sker automatiskt när du lägger till nya filer i mappen, men ska jag vara helt ärlig är jag för trött för att klura ut det just nu

Edit: Det här funkar med mappar också.

on run
	display dialog "Meddelande ifall nån kör dropleten utan att släppa nåt på den." buttons ["OK"]
end run

on open of the_input_file
	
	-- Mål-mapp (glöm inte sista-> / <-
	set target_folder to "/Volumes/Wstripe/Files/Video/Movies unseen/"
	
	-- Ta reda på vad filen heter
	try
		set text item delimiters to "/"
		set the_filename to text items -1 thru -1 of (POSIX path of the_input_file) as string
		set text item delimiters to ""
	on error
		-- Återställ text item delimiters så att inte andra script får problem
		set text item delimiters to ""
	end try
	
	
	-- Skapa symlinken
	try
		do shell script "ln -s \"" & POSIX path of the_input_file & "\" \"" & target_folder & the_filename & "\""
	on error errorMsg number errorNum
		display alert "Error " & errorNum message errorMsg buttons "Cancel" default button 1
		set the_error to 1
	end try
	
	
end open

När jag kör scriptet på mappar så får jag :
Error 1
In: /Volumes/Wstripe/Files/Video/Movies unseen//: File exists

Men det funkar fint med filer.

Scriptet skapar absoluta symlinks. Hur gör jag om jag vill att det ska vara relativt?

a.mov -> /Volumes/Wstripe/Files/Video/Movies/a.mov

a.mov -> ../Movies/a.mov

Alla symlinks kommer vara "../Movies/???". Detta eftersom min mediaspelare som ansluter med NFS inte lyckas resolva absoluta symlinks.

1
Bevaka tråden