Applescript es el lenguaje de scripting algo oscuro de Apple, pero es una herramienta poderosa que los programas novatos pueden aprovechar. Con algunos Applescripts inteligentes que manejan tareas molestas, podemos aumentar la productividad y automatizar su tristeza.
¿Qué es Applescript?
Applescript interactúa con la mayoría de las aplicaciones de Mac como Finder, iTunes, QuickTime y Mail. Si está familiarizado con Automator, Applescript es una especie de versión de usuario avanzado de esa aplicación.
1. Alternar archivos ocultos
Guarde esto como una aplicación y tendrá un botón en el que se puede hacer clic para revelar los archivos ocultos en el Finder.
set newHiddenState to "YES" try set oldHiddenState to do shell script "defaults read com.apple.finder AppleShowAllFiles" if oldHiddenState is in {"1", "YES"} then set newHiddenState to "NO" end if end try do shell script "defaults write com.apple.finder AppleShowAllFiles " & newHiddenState do shell script "killAll Finder"
2. Archivos de cambio de nombre por lotes
Esta secuencia de comandos solicitará al usuario un nombre de archivo y luego automáticamente cambiará el nombre de los archivos seleccionados con esa cadena de texto más un índice creciente. Incluso agrega de manera útil ceros a la izquierda para los archivos del uno al diez.
-- This code comes from https://gist.github.com/oliveratgithub/ -- Open in AppleScript Editor and save as Application -- ------------------------------------------------------------ --this is required to break the filename into pieces (separate name and extension) set text item delimiters to "." tell application "Finder" set all_files to every item of (choose file with prompt "Choose the Files you'd like to rename:" with multiple selections allowed) as list display dialog "New file name:" default answer "" set new_name to text returned of result --now we start looping through all selected files. 'index' is our counter that we initially set to 1 and then count up with every file. --the 'index' number is of course required for the sequential renaming of our files! repeat with index from 1 to the count of all_files --using our index, we select the appropriate file from our list set this_file to item index of all_files set file_name_count to text items of (get name of this_file) --if the index number is lower than 10, we will add a preceding "0" for a proper filename sorting later if index is less than 10 then set index_prefix to "0" else set index_prefix to "" end if -- --lets check if the current file from our list (based on index-number) has even any file-extension if number of file_name_count is 1 then --file_name-count = 1 means, we extracted only 1 text-string from the full file name. So there is no file-extension present. set file_extension to "" else --yup, we are currently processing a file that has a file-extension --we have to re-add the original file-extension after changing the name of the file! set file_extension to "." & item -1 of file_name_count end if --let's rename our file, add the sequential number from 'index' and add the file-extension to it set the name of this_file to new_name & index_prefix & index & file_extension as string end repeat --congratulations for successfully accomplishing the batch renaming task 🙂 display alert "All done! Renamed " & index & " files with '" & new_name & "' for you. Have a great day! :)" end tell
3. Escalar una imagen por porcentaje
Este script escalará las imágenes al 50% de su tamaño original.
-- Prompt for an image set theImageFile to choose file of type "public.image" with prompt "Please select an image:" -- Locate an output folder set theOutputFolder to (path to desktop folder as string) -- Launch Image Events tell application "Image Events" launch -- Open the image set theImage to open theImageFile tell theImage -- Determine a save name for the image set theName to name set theSaveName to "smlr-" & theName -- Scale the image by 50% scale by factor 0.5 -- Save the image to the output folder, using the save name save as file type in (theOutputFolder & theSaveName) -- Close the image close end tell end tell
4. Escala la imagen al ancho de píxel
Esto usa gran parte del inicio de los scripts anteriores, pero en su lugar se escala al ancho de píxeles. Solicitará al usuario el ancho de píxel deseado y agregará ese ancho de píxel al comienzo del nombre del nuevo archivo.
-- Prompt for an image set theImageFile to choose file of type "public.image" with prompt "Please select an image:" set dialogResult to (display dialog "Enter desired pixel width:" default answer "") try set pixelWidth to (text returned of dialogResult) as integer end try -- Locate an output folder set theOutputFolder to (path to desktop folder as string) -- Launch Image Events tell application "Image Events" launch -- Open the image set theImage to open theImageFile tell theImage -- Determine a save name for the image set theName to name set theSaveName to (pixelWidth as text) & "-px-" & theName -- Scale the image to pixelWidth scale to size pixelWidth -- Save the image to the output folder, using the save name save as file type in (theOutputFolder & theSaveName) -- Close the image close end tell end tell
5. Hacer una copia de seguridad de las carpetas en el destino elegido
Este sencillo script duplica una carpeta elegida en un destino elegido, lo que puede hacer que la copia complicada de arrastrar y soltar sea un poco menos dolorosa.
set backupTarget to (choose folder with prompt "Select a Backup Target") set backupDestination to (choose folder with prompt "Select a Backup Destination") tell application "Finder" duplicate folder backupTarget to folder backupDestination end tell
Conclusión
Para obtener más información sobre AppleScript, puede consultar Documentación propia de Apple. Mejor aún es MacOSXAutomation.com, que es más amigable para los novatos.