Az AppleScript lehetősége immáron évtizedek óta jelen van a Mac operációs rendszereiben, és bár a felhasználók többsége szinte sosem találkozik vele, számos olyan egyszerű műveletre is alkalmas a technológia, amelynek bárki hasznát veheti.

Ilyen feladat például fájlok csoportos átnevezése, illetve valamilyen információval való kiegészítése. Ezt a funkciót több okból is hasznosnak találhatjuk: például a fájlnévben elhelyezett dátum segítségével a továbbküldött, szerverre feltöltött és más módon használt képeket is könnyebben megtaláljuk. Illetve például nagy mennyiségű videófájl kezelése esetén több felhasználási út esetén hasznos, ha azok tartalmazzák a dátumukat a nevükben is. De a fájlok nevébe a létrehozás dátumán túl más hasznos információt is beírhatunk, amely nem másnap, hanem hónapokkal, évekkel később is segíti a könnyebb azonosításukat.

Hogy a megfoghatatlan használati forgatókönyvek helyett konkrét példával éljek: A később a Final Cut Pro alkalmazásban felhasználásra kerülő mozgókép fájlok életútja a következő:
1. Azok letöltésre kerülnek az Image Capture / Képletöltő alkalmazással a Mac-re a Finder egy adott mappájába. Ebbe a mappába kerülnek az iPhone-nal készített anyagok, a drónnal készült felvételek, az akciókamera videói, a digitális fényképezőgéppel rögzített videók és a kamkorder segítségével felvett tartalmak is, mégpedig azért, hogy ezek aztán az adott témához kapcsolódó Final Cut Pro Library médiatárába kerüljenek bele, de oda már precízen elnevezve.
2. A letöltést követően a precíz elnevezés következik, amelynek eleje mindig a dátum, majd kötőjellel választva valamilyen további jól leíró fájlnév, amely akár évek múltán is segít megtalálni a videót. (Sok esetben ilyen leírás alapján az ember meglel olyan, egyébként felhasználható jó videót, amelynek elkészülésére esetleg nem is emlékszik, és IMG_4354.MOV név alapján nem találná meg.)

Ennek a precíz elnevezésnek az eleje tehát mindig az adott dátum, amelyet megadhatunk manuálisan, de miért ne dolgozna a számítógép, ha ismétlődő rutinfeladatról van szó, és írná be magától a fájl létrehozásának napját, hogy kézzel már csak a jól leíró nevet kelljen megadni?

Hasonló a helyzet a fényképek esetén is. Bár a Photos / Fotók alkalmazás kiváló módon indexeli, elemzi, téma, arckép, helyszín alapján is megtalálja a fotóinkat, a dolog addig működik tökéletesen, amíg nem túl nagy a fotótár, és elfér a Mac belső meghajtóján. Ahogy külső meghajtón tároljuk a fotókat, ezeknek a funkcióknak a működése részben korlátozottá válik. Emiatt ennél a fájlkategóriánál is előnyös lehet, ha a dátum és valamilyen, a későbbi megtalálást segítő szó vagy szövegrész szerepel magában a fájlnévben is. (Ehhez nyilván az szükséges, hogy a képeket itt is az Image Capture / Képletöltő segítségével mentsük le a Mac-re az iPhone-ról, a fényképezőgép memóriakártyájáról, stb.)

Minthogy itt tehát ismétlődő rutinfeladatokat kell elvégezni, praktikus dolog azt a Mac-re bízni, és nem az értékes időnket erre áldozni.

A megoldásnak kétféle módja van, amelyeket külön bemutatunk, egyúttal példázva a Mac zsenialitását!

A szkript szövegezéséhez és a különféle összeakadások ellenőrzését a ChatGPT segítségével készítettem el, amely profin képes AppleScripteket írni, így nagy biztonsággal használhatjuk fel ilyen egyszerű feladatokra. Ezzel szintén időt spórolunk, és nem kell nyelvi listákból kutatni az egyes elemek pontos megjelölését.

Emellett irodalomként egy ős klasszikust, Bruce W. Perry igen régi, AppleScript in a Nutshell című alkotását használtam, amely még a Mac OS 9 időkben született, de az AppleScript logikájába és parancsainak felépítésébe hasznos bevezető.

Ezen kívül az Apple immáron archivált, de régi és részletes leírásai is hasznosak lehetnek.
Mac Automation Scripting Guide

Dátumot és szabadon megadott előtagot beillesztő AppleScript

Az AppleScript célja évtizedekkel ezelőtt az volt, hogy az Open Scripting Architecture (OSA) segédletével egy, a felhasználók által könnyen használható, a beszélt angolra hasonlító, alkalmazások közötti átjárást biztosító megoldást kínáljon, amely révén ismétlődő műveleteket tudunk hatékonyan és dinamikusan elvégezni.

Ott természetesen nem tartunk, hogy egyszerű angol mondatokkal megírjuk a Script Editor / Szkriptszerkesztő alkalmazásnak, hogy mit csináljon, tehát ez az elgondolás elérhetetlen maradt, az AppleScript nyelvezete azonban átlátható, viszonylag könnyedén megérthető logikával felépülő programozási lehetőségeket biztosít.

Itt ki kell emelni, hogy az Apple később bemutatta az Automator alkalmazását, amely számos rendszereseményt képes összekapcsolni, programok funkcióit egymáshoz illeszteni. Emellett az iOS rendszerekből a macOS is megörökölte a Shortcuts / Parancsok alkalmazást, amely megint csak automatizálási, feladat gyorsítási célokat lát el, de szintén másfajta megközelítés szerint.

A létrehozni kívánt AppleScript tartalma röviden leírva a következő: egy, a felhasználó által kiválasztott mappában lévő fájlok mindegyikének elejére beilleszti a fájlban eltárolt létrehozási dátumot kiválasztott dátum formázási elvek mentén, majd igény szerint további szót ad a fájlnevekhez a dátum után, a fájl eredeti neve elé helyezve és elválasztva.

A szkript eleje megcímzi a Finder alkalmazásunkat, amely egy párbeszédablakot jelenít meg a mappa kiválasztása érdekében. A használat során tehát az átnevezni kívánt fájlokat egy mappába kell gyűjteni. Így például a 2026. január 1-ji kismarosi kisvonatozásról készült anyagokat behelyezzük egy mappába, és a fájlok neve elé odakerül a „2026. 01. 01. - Kismarosi kisvonatozás” kifejezéssor. Ezt követően a fájlnév folytatódik az eredeti tartalmával, így az IMG_1397.HEIC vagy IMG_1398.MOV elnevezéssel, vagyis így fog kinézni: 2026. 01. 01. - Kismarosi kisvonatozás-IMG_1379.HEIC



A szkript működése során a rendszer listaként kezeli a fájlok sorát, dátumot olvas ki fájlokból, a dátumot formázza, a hónapot egész számmá alakítja, illetve ügyel arra, hogy a 10-nél kisebb napok és hónapok elé nullát tegyen, hogy az elnevezés karakterszáma azonos maradjon.

A szkript során mód van arra, hogy a dátumok elválasztását igényünk szerint definiáljuk. Ha nem szeretnénk szókört, akkor lehet például sima kötőjeles módon elválasztani őket. De a helyes magyar módszerrel minden számérték után elhelyezhetünk pontot és szóközt.

A szkript párbeszédablakban lehetőséget ad egy tetszőleges szöveg megadására, majd kéri az érintett mappa kiválasztását. A mappa megadása után a szkript lefut, és átnevezi a mappában lévő összes fájlt az igényeink szerint.



Ha kívánjuk, mód van arra, hogy az AppleScript ellenőrizze, hogy található-e már a fájlnévben pont, és a pont mögötti részen ne hajtson végre változtatást. Ennek annyi a jelentősége, hogyha valami okból a fájlnév rövid lenne, akkor a kiterjesztés módosítását mindenképpen ki tudjuk zárni. Erre iPhone-ról, kamerákról letöltött anyagok esetén nem kell figyelni, hiszen ezek az eszközök viszonylag hosszú fájlneveket adnak, nem tesznek a fájlnevekbe pontot.

A szkriptet futtathatjuk a Script Editor / Szkriptszerkesztő alkalmazásból, de lehetőség van arra is, hogy alkalmazásként exportáljuk. Elmentés esetén bármikor meg tudjuk nyitni, és minden alkalommal mód van arra, hogy módosítsuk igényeink szerint például a dátum tagolását. Ha alkalmazásként mentjük el, akkor ezen kötött paramétere nem módosítható, de természetesen a tetszőleges szövegrészt így is be tudjuk illeszteni a fájlnévbe.

A funkció révén a tucatnyi videófelvételt, amelyet egy-egy utazás során készítünk, tudunk egyszerűen dátum alapján összekötni, hogy egyszerűsítsük a precíz elnevezést, amelyet követően hatékonyabban tudjuk felhasználni például a Final Cut Pro alkalmazásban is.

Fotók kapcsán a dolognak akkor van jelentősége, ha weben vagy sima fájlokként osztjuk meg ismerőseinkkel, és nem a Photos / Fotók alkalmazásból prezentáljuk.

A szkript szövege az említett kiegészítéssel:

tell application "Finder"
-- Párbeszédablak a kiegészítő szövegrész megadására
set userInput to text returned of (display dialog ¬
¬
"Szíveskedjen megadni a dátum után, a fájl eredeti neve elé kerülő szövegrészt! Elválasztás nem szükséges: kötőjel kerül a szöveg után." default answer ¬
"" with title "Kiegészítő szövegrész megadása")

set targetFolder to choose folder with prompt "Szíveskedjen kiválasztani a fájlokat tartalmazó mappát! (Az almappák tartalmát a folyamat nem érinti.)"
set fileList to files of targetFolder

repeat with f in fileList
set oldName to name of f
set creationDate to creation date of f

-- A dátum formátuma ez: ÉÉÉÉ-HH-NN
set y to year of creationDate as string
set m to month of creationDate as integer
set d to day of creationDate

if m < 10 then set m to "0" & m
if d < 10 then set d to "0" & d

set datePart to y & ". " & m & ". " & d & ". "

if userInput is not "" then
set prefix to datePart & " - " & userInput & ", "
else
set prefix to datePart & " - "
end if

-- A fájl nevét és a kiterjesztést pont választja el.
if oldName contains "." then
set AppleScript's text item delimiters to "."
set nameParts to text items of oldName
set AppleScript's text item delimiters to ""

set fileExtension to "." & item -1 of nameParts
set baseName to text 1 thru -((length of fileExtension) + 1) of oldName
else
set baseName to oldName
set fileExtension to ""
end if

set name of f to prefix & baseName & fileExtension
end repeat
end tell


Dátumot beillesztő Folder Action / Mappa művelet az AppleScript jóvoltából

A Mac egyik legzseniálisabb képessége, amelyről ennek ellenére kevesen tudnak, a Folder Action / Mappa művelet lehetőség, amely révén egy-egy mappát kiegészíthetünk egy művelettel, amely automatikusan végrehajtásra kerül, ha a mappába belehelyezünk egy fájlt.

Folder Action / Mappa művelet segítségével lehetőség van tömegesen elforgatni a vízszintes fájlként elmentett függőleges képeket, csoportosan átméretezni olyan képeket, amelyeket egy-egy megosztóra vagy weblapra szeretnénk publikálni, stb.

A fenti példa alapján lehetőségünk van olyan Folder Action / Mappa művelet létrehozására is, amely csak annyit tesz, hogy a mappába helyezett fájlok elejére odailleszti a dátumot az általunk megadott formátumban.

A Folder Action / Mappa művelet szövegezése némileg eltérő a Script Editor / Szkriptszerkesztő programban. Itt azt definiáljuk a szkript szövegében, hogy ellenőrizze, hogy az érintett elemek fájlok, nem mappák. Ezt követően pedig a létrehozási dátumot helyezzük el a fájlnév elején.



A szövegezés terén itt is érdemes figyelnünk arra, hogy alapértelmezés szerint kötőjelekkel kerül elválasztásra a dátum három tagja és a fájlnév, vagyis a formátum: 2026-01-01-IMG_8713.JPG lesz. Ezt a szkript szövegében két sorban tudjuk módosítani eltérő módon, mint a fenti szkript esetén: a theFile és a datePrefix közötti tagot beállíthatjuk .

A dolog nagyszerűsége, hogy ezt követően ha letöltünk bármennyi fájlt a kameráinkról, azt behúzva ebbe a Folder Action / Mappa művelettel kiegészült, praktikusan csak erre a célra használt önálló mappába megkapják automatikusan a dátum alapján a név előtagot, majd ezt követően visszahelyezhetjük őket az eredeti helyükre, ahonnan precíz leíró elnevezést megkapva bekerülhetnek a Final Cut Pro, iMovie vagy más alkalmazásba. (A fényképek esetén a dátum kiegészítés után praktikusan importálhatjuk őket a Photos / Fotók programba, vagy a fentebbi AppleScript segítségével dátum és kulcsszó tagokkal egészíthető ki a fájlnevük.)

A Folder Action / Mappa művelet használatához azt hozzá kell rendelnünk az adott mappához.

Ennek érdekében előbb érdemes az AppleScript menüt elhelyező alapbeállítást végrehajtanunk. A Script Editor / Szkriptszerkesztő program Settings / Beállítások ablakában a General / Általános fül alatt találjuk a Show Script menu in menu bar / Szkript menü megjelenítése a menüsoron opciót, amely révén könnyen hozzáférünk az operációs rendszerben lévő szkript mappákhoz.

Itt, a menüben érhetjük el legkönnyebben a Folder Action Scripts nevű mappát, amelybe saját gyártású AppleScriptjeinket tudjuk elhelyezni. (Van az operációs rendszernek saját Folder Action Scripts mappája is, de ott a gyárilag, az Apple által biztosított szkriptek találhatóak. Ugyan ebbe is tudunk behelyezni saját szrkiptet, de nem ez az Apple által megálmodott helye az utólagos szkripteknek.)

A szkript megfelelő szövegezését követően a Script Editor / Szkriptszerkesztő program File / Fájl > Export… / Exportálás… elemét választva a Script / Szkript beállítást kell választanunk, azaz nem kell önálló alkalmazássá alakítani a funkciót. Az így létrehozott .SCPT kiterjesztésű iratot be kell helyeznünk a fentebb említett felhasználói Folder Action Scripts mappába, amely legkönnyebben a szkript menüből érhető el, de a felhasználói fiók (~):Library:Scripts:Folder Actions Scripts elérési úton is eljutunk hozzá, amennyiben a Library / Könyvtár mappa a felhasználói fiókunkban látható.



Tipp: A Library / Könyvtár mappát a felhasználói fiókunk (~) mappáját megnyitva a a nézetbeállítások palettán (Command ⌘ + J; vagy a View / Nézet menü Show View Options / Nézetbeállítások megjelenítése parancs) a Show Library Folder / Könyvtár mappa megjelenítése opció kipipálásával tudjuk elérhetővé tenni. Ez a mappa alapértelmezés szerint rejtett. (Az összes rejtett fájlt a Command ⌘ + Shift + . [pont] billentyűparanccsal is láthatóvá tehetjük, ám ez rendszerszinten minden rejtett fájlt megmutat, amely felesleges.)

Az exportált szkriptet tehát a felhasználói fiók Folder Action Scripts mappába helyezve immáron használhatjuk.

Ehhez célszerű új mappát létrehozni, amelyet csak erre a célra használunk - esetünkben egy Dater nevű mappa jön létre. (Ennek adhatunk egyedi ikont is, hogy utaljunk arra, hogy nem egyszerű mappáról van szó.)

A mappán Control-kattintva (másodlagos kattintás, jobb egérgombbal kattintás) találjuk a Services / Szolgáltatások menüpontot, amelynek eleme a Folder Action Setup… / Mappaműveleti beállítása… Ezt választva a rendszer biztonsági okokból figyelmeztet, hogy korlátozott szolgáltatást kívánunk futtatni, ám ettől nem kell megijedni, az Apple a saját maga által kínált funkciót próbálja veszélyforrásként beállítani. Nyilvánvalóan a futtatással semmiféle kockázatot nem vállalunk, az operációs rendszer belső képességeit aknázzuk ki csupán Apple szoftverek jóvoltából.

A mappaműveleti ablakban meg kell jelölni az érintett mappát, esetünkben a Dater nevűt, és a mellette lévő sávban egy szkriptet kiválasztani - ez az a szkript lesz, amelyet fentebb elhelyezünk a (~):Library:Scripts:Folder Actions Scripts mappában.

És már működik is a dátumozó mappánk. Amennyiben a mappába fájlt helyezünk, a Finder az AppleScript révén elhelyezni a fájlnév elején a létrehozás dátumát.

A szkript szövege:

on adding folder items to this_folder after receiving added_items
repeat with anItem in added_items
try
tell application "Finder"
set theFile to anItem

-- Mappák kizárása
if kind of theFile is not "Folder" then

set creationDate to creation date of theFile

-- A dátum formátuma ez: ÉÉÉÉ-HH-NN
set datePrefix to my formatDate(creationDate)

set originalName to name of theFile

-- Dupla előtag elkerülése
if originalName does not start with datePrefix then
set name of theFile to datePrefix & ". - " & originalName
end if

end if
end tell
end try
end repeat
end adding folder items to

on formatDate(theDate)
set y to year of theDate as text
set m to month of theDate as integer
set d to day of theDate

set m to text -2 thru -1 of ("0" & m)
set d to text -2 thru -1 of ("0" & d)

return y & ". " & m & ". " & d
end formatDate


© 2026. MacMag.hu | Cikk: Birincsik József 2026. január 2.

 



 


     Keresés a lap tartalmában a Google motorja segítségével: