(* Varmuuskopiot 1.0 Skripti tekee kaksi varmuuskopiota sen kuvakkeelle pudotetuista tiedostoista tai kansioista. Varmuuskopioidessa saman nimiset vanhemmat kohteet korvataan uudemmilla versioilla. Ensimmäisellä kerralla ajettaessa skripti pyytää valitsemaan kaksi kansiota varmuuskopioita varten. Kannattaa valita eri levyillä sijaitsevat kansiot. Levyn puuttuessa (esim. vaihtolevy ei ole asemassaan) skripti kysyy sitä. 2000 Tuomas Rosberg <vanhentunut> Lähdekoodi on ilmaista ja tarkoitettu yleiseen käyttöön (public domain). Sitä lainattessa kirjoittajan nimi on mainittava. Koodilla ei ole mitään takuuta, ja sen sisältävää ohjelmaa käyttävät toimivat omalla vastuullaan. *) property usedBefore : false property folder1 : {} property folder2 : {} on run -- Käynnistys kaksoisosoittamalla tai Omenavalikosta. if usedBefore is true then display dialog "Vedä ja pudota tiedostoja tämän ohjelman kuvakkeelle." & return & return & ¬ "Niistä tehdään varmuuskopiot valittuihin kansioihin." buttons "OK" default button 1 with icon note else -- Varmuuskopioille ei ole valittu kansioita. my kysyTiedot() set f1 to folder1 as text set f2 to folder2 as text if f1 is not "" then if f2 is not "" then display dialog ¬ "Kansiot varmuuskopioille ovat " & f1 & " ja " & f2 & "" & return & ¬ "Vedä ja pudota tiedostoja ohjelman kuvakkeelle, ja se tekee varmuuskopiot." & return ¬ buttons "Lopeta" default button 1 end if end if end if end run on open (lista) -- Käynnistys pudottamalla tiedostoja kuvakkeelle. if usedBefore is false then -- Varmuuskopioille ei ole valittu kansioita. my kysyTiedot() end if if usedBefore is true then set delims to AppleScript's text item delimiters set AppleScript's text item delimiters to ":" display dialog "Varmuuskopiokansioissa mahdollisesti" & return & ¬ "olevat saman nimiset tiedostot" & return & ¬ "korvataan uusilla versioilla." buttons {"Peruuta", "OK"} default button "OK" with icon caution if button returned of result is "OK" then tell application "Finder" if disk of folder1 exists then try duplicate lista to folder1 with replacing on error errr display dialog ¬ "Kopiointiyritys keskeytyy. Tulos: " & return & errr buttons "Lopeta" default button 1 end try else display dialog ¬ "En löydä levyä " & first text item of (folder1 as text) & "." buttons "Ohita" default button 1 end if if disk of folder2 exists then try duplicate lista to folder2 with replacing on error errr display dialog ¬ "Kopiointiyritys keskeytyy. Tulos: " & return & errr buttons "Lopeta" default button 1 end try else display dialog ¬ "En löydä levyä " & first text item of (folder2 as text) & "." buttons "Ohita" default button 1 end if end tell end if set AppleScript's text item delimiters to delims end if end open on kysyTiedot() display dialog "Ohjelma tekee kaksi varmuuskopiota" & return & ¬ "halutuista tiedostoista. Valitse kansio," & return & ¬ "jonne varmuuskopiot sijoitetaan." buttons {"Peruuta", "OK"} default button "OK" if button returned of result is "OK" then set folder1 to (choose folder with prompt "Valitse kansio varmuuskopiolle:") set f1 to folder1 as text set folder2 to (choose folder with prompt "Valitse kansio toiselle varmuuskopiolle:") repeat until folder2 is not folder1 display dialog ¬ "Valitse kaksi eri kansiota. " & return & ¬ "Ensimmäinen kansio on " & f1 & "" buttons "Kiitos" default button 1 set folder02 to (choose folder with prompt "Valitse kansio toiselle varmuuskopiolle.") end repeat set usedBefore to true -- Kansiot valittu. end if end kysyTiedot