Applescript?

Tråden skapades och har fått 5 svar. Det senaste inlägget skrevs .
1
  • Medlem
  • 2003-08-12 16:50

Hallåj!

Har precis börjat använda en massa bra applescript i mitt iTunes för att döpa om filer, ta bort versaler etc. etc. Tänkte nu höra om det finns liknande enkla organiserings script till finder (OSX)? Skulle för tillfället behöva ett script som kan ta bort x antal nedslag ifrån början av ett filnamn... Men en scriptsamling med flera av dessa vanliga funktioner vore ju det ultimata!
Tips?

/Alexander Ljung

  • Medlem
  • International user
  • 2003-08-12 18:33

Lite sånt finns redan på din Mac. Dubbelklicka på Applications/Applescript/Script Menu.menu för att aktivera scriptmenyn. Du har sedan ett gäng skript tillgängliga uppe i menyn.

Ett av scripten heter 'Trim file names'. Kan de va ngt?

Kolla även in macscripter.net

  • Medlem
  • 2003-08-14 10:45

Tja!
Dom som följer med räcker inte riktigt till... Har någon förresten fått "replace text in item name" att fungera på å ä ö ?
Hittade inget på hemsidan... Fattar inte, det här borde ju vara standardscript.

Följande script är lite av ett standardscript för att göra saker antingen med alla mappar i en folder, alla filer i en folder, eller allar objekt i en folder, mappar och filer.

Observera att scriptet som det ser ut nu inte "gör" något med varje folder/fil, men du ser var i scriptet sådant skall in.

-- En applet av detta manus som du släpper saker på reagerar på detta:
-- Dvs drag och drop-funktionalitet kräver denna handler
on open fileList
parseFiles(fileList) of me
end open

-- En applet av detta manus reagerar på detta om du öppnar den
-- eller klickar på play i manusredigeraren
on run
set theFolderToParse to choose folder with prompt "Välj en mapp"
parseFolder(theFolderToParse)
end run

-- Här hanteras alla objekt i en mapp, mappar och filer
on parseFiles(fileList)
tell application "Finder"
repeat with listItems in fileList
if kind of listItems is "mapp" then
-- Mappar skickas till en handler för mappar
set theFolderToParse to listItems
parseFolder(theFolderToParse) of me
else
-- Här gör du saker med varje fil
end if
end repeat
end tell
end parseFiles

-- Handlern för mappar
on parseFolder(theFolderToParse)
-- Här gör du saker med varje folder, tex detta:
tell application "Finder"
-- Skicka en lista på alla objekt i mappen till
-- handlern för mappar och filer
set newFileList to the items of theFolderToParse
parseFiles(newFileList) of me
end tell
end parseFolder

/Ola

Lägg till detta script, som jag inte minns var jag hittat det (tror det medföljde dokumenationen för Applescript), efter det script jag skrev ovan, då har du en liten subrutin för att trimma bort valfria saker från en sträng.

on trim_line(this_text, trim_chars, trim_indicator)
-- 0 = beginning, 1 = end, 2 = both
set x to the length of the trim_chars
-- TRIM BEGINNING
if the trim_indicator is in {0, 2} then
repeat while this_text begins with the trim_chars
try
set this_text to characters (x + 1) thru -1 of this_text as string
on error
-- the text contains nothing but the trim characters
return ""
end try
end repeat
end if
-- TRIM ENDING
if the trim_indicator is in {1, 2} then
repeat while this_text ends with the trim_chars
try
set this_text to characters 1 thru -(x + 1) of this_text as string
on error
-- the text contains nothing but the trim characters
return ""
end try
end repeat
end if
return this_text
end trim_line

För att kunna döpa om filen så måste du sedan få fram nuvarande namnet, trimma bort det du inte vill ha, och skriva tillbaka namnet till filen.

Detta Applescript har jag inte testat, men det borde vara något i denna stil:

-- Här gör du saker med varje fil
-- Tag fram nuvarande namnet på filen
-- Viktigt att vi lagrar fileName som text.
set fileName to name of listitems as text
-- Kalla på subrutinen för att trimma bort mellanslag från början (0)
set fileName to trim_line(fileName, " ", 0)
-- Skriv dit nya namnet
set name of listitems to fileName

Denna snutt skall alltså in där raden "-- Här gör du saker med varje fil" står i första scriptet.

Andra scriptet skall stå efter första scriptet i samma script.

Borde fungera...

Har lite bråttom annars skulle jag testa också.

/Ola

1
Bevaka tråden