0 votos

Comprimir archivos con el mismo nombre de salida que la carpeta principal con Automator

He estado buscando en internet una solución a esto. Me gustaría crear un flujo de trabajo de Automator que comprimiera los archivos seleccionados, nombrara el zip con el nombre del directorio padre y guardara ese zip en el directorio actual.

No encuentro la forma de obtener el directorio principal. Me he topado con un muro. ¿Podría alguien ayudarme?

1voto

Jordan W. Puntos 1083

En Automator:

  1. Añadir Obtener elementos seleccionados del buscador
  2. Añadir Ejecutar Applescript

Inserta este código para el Applescript:

on run {input, parameters}
 set pathList to {}
 repeat with itemNum from 1 to count of input
 tell application "System Events"
 copy POSIX path of (container of (item itemNum of input)) to end of pathList
 end tell
 end repeat
 return pathList
end run

Resultados:

2013-05-11 00:06:02 +0000: Get Selected Finder Items completed
2013-05-11 00:06:02 +0000: Conversion from Files/Folders to Files/Folders completed
2013-05-11 00:06:02 +0000: Run AppleScript completed
2013-05-11 00:06:02 +0000: Workflow completed

{"/Users/Desktop", "/Users/Desktop", "/Users/Desktop"}

0voto

Puedes usar una acción de Crear Archivo y renombrar el archivo resultante:

d=${1%/*}
start="$d/${d##*/}"
name="$start.zip"
i=2
while [[ -e $name ]]; do
  name="$start $i.zip"
  let i++
done
mv "$1" "$name"
open -R "$name"

O utilice una acción de ejecución de shell script como ésta:

for n in $(seq $(printf %s "$@" | tr -dc / | wc -c)); do
  uniq=$(printf %s\\n "$@" | cut -d / -f1-$n | uniq)
  [[ $uniq != *$'\n'* ]] && dir=$uniq || break
done

cd "${dir:-/}"
[[ $dir ]] && start=${dir##*/} || start=archive
name="$start.zip"

i=2
while [[ -e $name ]]; do
  name="$start $i.zip"
  let i++
done

zip -r "$name" -- "${@#$dir/}"
open -R "$name"

Si algunos archivos tienen atributos extendidos o ACLs, zip los elimina. La Utilidad de Archivo y la acción Crear Archivo los almacenan en el formato AppleDouble.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X