- Taz_1999
- Medlem ●
- Stockholm
- 2003-07-28 16:00
För en tid sedan postade jag ett Applescript för Mac OS 9 här på 99Mac som städade undan allt junk som tenderar att samlas på skrivbordet i olika mappar. Det scriptet jobbade med de "types"- och "creator"-koder som filer har i Mac OS 9.
http://www.99mac.com/forum/showthread.php?s=&threadid=8694
Nu har jag i samband med att jag för en tid sedan bytte till Mac OS X gjort om det scriptet för Mac OS X (som fungerar lite annorlunda och därmed så är scriptet lite annorlunda också) och här är det - fullt kommenterat:
(*
----------------------------------------------------------------
Clean up desktop, version 1.5
----------------------------------------------------------------
© Intelligent Mammals HB, Ola Andersson, 2003-07-27
Ola@intelligentmammals.com
http://www.intelligentmammals.com/
Detta script skapar en mapp "Upphittat" på skrivbordet om den inte finns. In den mappen skapas sedan ett antal olika mappar, återigen om de inte finns.
Applikationer
Databaser
Bilder
Filmer
Packade filer
PDF
Text
URL
Övrigt
Sedan flyttas alla frivsvävande objekt från skrivbordet in i sina respektive mappar och scriptet avslutar med att städa skrivbordet (OBS, detta sista steg är ej tillgängligt i Mac OS X ännu).
Jag skapade detta manus dels för att jag alltid verkar få en massa junk på skrivbordet och dels för att lära mig skapa mappar och flytta omkring saker.
En brist med detta manus är att saker som fysiskt ligger på skrivbordet på andra diskar än StartUp Disk kommer att kopieras till StartUp Disk och därmed även ligga kvar på skribordet.
Detta manus finns i en variant för Mac OS 9 som är annorlunda uppbyggt.
Längst ner i manuset så kan du lägga till de objekt du vill ha kvar på skrivbordet efter städningen.
*)
tell application "Finder"
activate
(* UPPHITTAT
Skapa mappen "Upphittat" på skrivbordet om den inte finns.
*)
set thefolder to "Upphittat"
if exists folder thefolder then
set thefolder to item thefolder as alias
else
make new folder with properties {name:"Upphittat"}
set thefolder to result
end if
(* APPLIKATIONER
Skapa mappen "Applikationer" i mappen "Upphittat" på skrivbordet om den inte finns.
*)
set appfolder to ((thefolder as string) & ("Applikationer" as string))
if exists folder appfolder then
set appfolder to item appfolder as alias
else
make new folder at thefolder with properties {name:"Applikationer"}
set appfolder to result
end if
(*
Här är filtyperna för applikationer filer som stöds av detta script
*)
set appTypes to {"APP"}
(* BILDER
Skapa mappen "Bilder" i mappen "Upphittat" på skrivbordet om den inte finns
*)
set imagefolder to ((thefolder as string) & ("Bilder" as string))
if exists folder imagefolder then
set imagefolder to item imagefolder as alias
else
make new folder at thefolder with properties {name:"Bilder"}
set imagefolder to result
end if
(*
Här är filtyperna för bilder som stöds av detta script.
*)
set imageTypes to {"BMP", "EPS", "GIF", "JPG", "PCT", "PICT", "PSD", "TIF", "TIFF"}
(* DATABASER
Skapa mappen "Databaser" i mappen "Upphittat" på skrivbordet om den inte finns
*)
set dbfolder to ((thefolder as string) & ("Databaser" as string))
if exists folder dbfolder then
set dbfolder to item dbfolder as alias
else
make new folder at thefolder with properties {name:"Databaser"}
set dbfolder to result
end if
(*
Här är filtyperna för databaser som stöds av detta script.
*)
set dbTypes to {"FP3", "FP5"}
(* FILMER
Skapa mappen "Filmer" i mappen "Upphittat" på skrivbordet om den inte finns
*)
set moviefolder to ((thefolder as string) & ("Filmer" as string))
if exists folder moviefolder then
set moviefolder to item moviefolder as alias
else
make new folder at thefolder with properties {name:"Filmer"}
set moviefolder to result
end if
(*
Här är filtyperna för filmer som stöds av detta script.
I ordning, QuickTime, MPEG och AVI.
*)
set movieTypes to {"MOV", "MPG", "MPEG", "WMV", "RM"}
(* PACKADE FILER
Skapa mappen "Packade filer" i mappen "Upphittat" på skrivbordet om den inte finns
*)
set stufffolder to ((thefolder as string) & ("Packade filer" as string))
if exists folder stufffolder then
set stufffolder to item stufffolder as alias
else
make new folder at thefolder with properties {name:"Packade filer"}
set stufffolder to result
end if
(*
Här är filtyperna för packade filer som stöds av detta script
*)
set stuffTypes to {"DMG", "GZIP", "PKG", "SEA", "SIT", "SMI", "TGZ", "ZIP"}
(* PDF
Skapa mappen "PDF" i mappen "Upphittat" på skrivbordet om den inte finns
*)
set pdffolder to ((thefolder as string) & ("PDF" as string))
if exists folder pdffolder then
set pdffolder to item pdffolder as alias
else
make new folder at thefolder with properties {name:"PDF"}
set pdffolder to result
end if
(*
Här är filtypen för pdf-filer som stöds av detta script
*)
set pdfTypes to {"PDF"} -- Obs, mellanslag efter PDF.
(* TEXT
Skapa mappen "TEXT" i mappen "Upphittat" på skrivbordet om den inte finns
*)
set txtfolder to ((thefolder as string) & ("TEXT" as string))
if exists folder txtfolder then
set txtfolder to item txtfolder as alias
else
make new folder at thefolder with properties {name:"TEXT"}
set txtfolder to result
end if
(*
Här är text-filsformaten som stöds av detta script
I ordning: Word, BBEDIT/Skriv Text, Urklipp.
*)
set txtTypes to {"DOC", "TXT", "clpt", "textClipping"}
(* URL
Skapa mappen "URL'er" i mappen "Upphittat" på skrivbordet om den inte finns
*)
set urlfolder to ((thefolder as string) & ("URL's" as string))
if exists folder urlfolder then
set urlfolder to item urlfolder as alias
else
make new folder at thefolder with properties {name:"URL's"}
set urlfolder to result
end if
(*
Här är url-formaten som stöds av detta script
*)
set urlTypes to {"LINK", "URL"}
(* ÖVRIGT
Skapa mappen "Övrigt" i mappen "Upphittat" på skrivbordet om den inte finns
*)
set otherfolder to ((thefolder as string) & ("Övrigt" as string))
if exists folder otherfolder then
set otherfolder to item otherfolder as alias
else
make new folder at thefolder with properties {name:"Övrigt"}
set otherfolder to result
end if
(*
Variabler för listor över filer
*)
set appFiles to {}
set dbFiles to {}
set ImageFiles to {}
set MovieFiles to {}
set stuffFiles to {}
set PdfFiles to {}
set txtFiles to {}
set urlFiles to {}
set otherFiles to {}
(*
Vi skapar ett antal listor med filer av varje typ.
*)
tell desktop
-- APPLIKATIONER
repeat with extension in appTypes
set appFiles to appFiles & (files whose name extension is extension)
end repeat
-- BILDER
repeat with extension in imageTypes
set ImageFiles to ImageFiles & (files whose name extension is extension)
end repeat
-- DATABASER
repeat with extension in dbTypes
set dbFiles to dbFiles & (files whose name extension is extension)
end repeat
-- FILMER
repeat with extension in movieTypes
set MovieFiles to MovieFiles & (files whose name extension is extension)
end repeat
-- PDF
repeat with extension in pdfTypes
set PdfFiles to PdfFiles & (files whose name extension is extension)
end repeat
-- STUFFED
repeat with extension in stuffTypes
set stuffFiles to stuffFiles & (files whose name extension is extension)
end repeat
-- TXT
repeat with extension in txtTypes
set txtFiles to txtFiles & (files whose name extension is extension)
end repeat
-- URL
repeat with extension in urlTypes
set urlFiles to urlFiles & (files whose name extension is extension)
end repeat
-- ÖVRIGT
-- Som mappar och andra filtyper får jag ordna med senare.
end tell
(*
Flytta alla filer och mappar!
*)
move appFiles to appfolder as alias
move dbFiles to dbfolder as alias
move ImageFiles to imagefolder as alias
move MovieFiles to moviefolder as alias
move PdfFiles to pdffolder as alias
move stuffFiles to stufffolder as alias
move txtFiles to txtfolder as alias
move urlFiles to urlfolder as alias
-- Vi behöver även flytta alla mappar utom upphittat.
set allFolders to every folder of desktop whose name is not "Upphittat"
(*
Första mappen som ovanstående kommando hittar är hårddisken
Vi skriver nedanstående för att ta bort första objektet från
ur listan med mappar på skrivbordet.
*)
set allFolders to the rest of allFolders
move allFolders to otherfolder as alias
-- Vi flyttar även alla filer
set allFiles to every file of desktop
move allFiles to otherfolder as alias
(*
Om man vill ha flera mappar/filer liggande på skrivbordet, förutom "Upphittat", så kan man här lägga till några rader på följande form som flyttar tillbaka de objekt man vill ha kvar på skrivbordet ur mappen "Upphittat" och dess undermappar.. Tag bort minustecknen bara och ändra filnamnet/mappen till det det skall vara. Nedan hittar du två exempel, dels för en folder och dels för en fil.
*)
move file "CleanUp.app" of appfolder as alias to desktop
move folder "Installerare" of otherfolder as alias to desktop
(*
I Mac OS X saknas stöd för ett Applescript-kommando som stöds i Mac OS 9:
clean up desktop.
Det kommandot tar och placeerar de objekt/hårddiskar och annat man har på skrivbordet i god ordning. Det kommandot kommer att dyka upp i en kommande version av Mac OS X men finns inte i skrivande stund.
*)
-- clean up desktop by name
end tell
Min förhoppning är att båda scripten tillsammans ger er en god inblick i hur man skriver för att flytta omkring filer och mappar.
Lycka till!
/Ola