2 votes

Découpage des noms de fichiers dans l'automate avec shell ou applescript

Pourquoi ça ne marche pas ?

(L'automate est en suédois mais les pièces le sont : obtenir les objets sélectionnés du finder - récupérer le contenu du dossier - exécuter le shell script)

Printscreen Automator

Je veux couper les trois premiers caractères des noms de fichiers d'un dossier dans le cadre d'une action de dossier d'Automator. Je ne connais pas moi-même les scripts shell, mais j'ai lu un peu partout et je pense que cela devrait faire l'affaire.

J'ai aussi essayé avec applescript : Automator Applescript

Cela fonctionne mieux mais seulement avec les 8 premiers fichiers pour une raison quelconque.

Quelqu'un sait-il comment régler ce problème ? /Daniel

3voto

bennettp123 Points 646

La raison pour laquelle votre shell script ne fait pas ce que vous voulez est que Automator passe le chemin complet des fichiers comme arguments.

Si le chemin complet de l'un des fichiers est /Users/foo/Temp/file1.txt, alors votre script tente de le renommer en ers/foo/Temp/file1.txt, ce qui n'est pas ce que vous voulez.

Essayez plutôt ceci :

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

Mieux encore (gère correctement les noms de fichiers relatifs) :

for f in "$@"; do
  FILENAME=$(basename "$f")
  DIRNAME=$(dirname "$f")
  if [ -z "$DIRNAME" ]; then
    DIRNAME="."
  fi
  mv "$f" "${DIRNAME}/${FILENAME:3}"
done

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X