Taglia i nomi dei file nell'automatore w. conchiglia o applecript


2

Perché non funziona?

(L'automatore è in svedese, ma le parti sono: ottenere gli oggetti finder selezionati - ottenere il contenuto della cartella - eseguire lo script della shell)

Automazione dello schermo di stampa

Voglio tagliare i primi tre caratteri dei nomi dei file in una cartella come parte dell'azione di una cartella dell'automatore. Non conosco lo scripting della shell, ma ho letto un po 'in giro e penso che questo dovrebbe fare il trucco.

Ho anche provato questo con applecript: Automator Applescript

Funziona meglio ma solo con i primi 8 file per qualche motivo.

Qualcuno sa come risolvere questo? / Daniel

Risposte:


3

Il motivo per cui lo script della shell non sta facendo quello che vuoi è perché Automator passa l'intero percorso dei file come argomenti.

Se il percorso completo di uno dei file è /Users/foo/Temp/file1.txt, il tuo script tenta di rinominarlo in ers / foo / Temp / file1.txt, che non è quello che desideri.

Prova questo invece:

for f in "$@"; do
  FILENAME=$(basename "$f")
  DIRNAME=$(dirname "$f")
  mv "$f" "${DIRNAME}/${FILENAME:3}"
done

Meglio ancora (gestisce correttamente i nomi dei file relativi):

for f in "$@"; do
  FILENAME=$(basename "$f")
  DIRNAME=$(dirname "$f")
  if [ -z "$DIRNAME" ]; then
    DIRNAME="."
  fi
  mv "$f" "${DIRNAME}/${FILENAME:3}"
done
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.