Comme vous n'étiez pas trop clair sur le type de Automator flux de travail que vous avez créé, je vais me concentrer principalement sur les code que vous utilisez dans le Exécuter le Shell script action .
L'exemple suivant Automator flux de travail a été créé par Fichier > Nouveau > Flux de travail sur Automator avec un Obtenez les articles sélectionnés de Finder action et un Exécuter le Shell script action ajouté à celui-ci, avec le paramètres comme le montre l'image ci-dessous.
Les tests ont été effectués avec un sélection contenant à la fois fichiers y dossiers qui comprenait à la fois les cibles réelles de la Automator flux de travail 's Exécuter le Shell script action et d'autres comme s'ils avaient été sélectionnés par hasard, si vous voulez. Avec les éléments suivants fichiers y dossiers sélectionné dans Finder :
.
Archive.zip
Folder_Name_1
Folder_Name_2
Folder_Name_3
Foobar
Foobar.txt
Les éléments suivants vue arborescente étendue de la sélection fichiers y dossiers montré ci-dessus, contient évidemment les deux fichiers qui ne sont pas les véritables cibles de la flux de travail ainsi qu'un dossier ne contenant pas le contenu attendu. Ceci a été fait pour tester que le exemple bash
code fonctionne comme prévu.
.
Archive.zip
Folder_Name_1
Converted_Files
file1.aiff
file2.aiff
Folder_Name_2
Converted_Files
file1.aiff
file2.aiff
Folder_Name_3
Converted_Files
file1.aiff
file2.aiff
Foobar
Barfoo
More Foobar.txt
Foobar.txt
8 directories, 9 files
Après avoir exécuté le flux de travail de Automator sur les fichiers y dossiers sur Finder Le texte suivant montre la nouvelle vue arborescente étendue de la sélection originale vue arborescente étendue :
.
Archive.zip
Folder_Name_1
file1.aiff
file2.aiff
Folder_Name_2
file1.aiff
file2.aiff
Folder_Name_3
file1.aiff
file2.aiff
Foobar
Barfoo
More Foobar.txt
Foobar.txt
5 directories, 9 files
Comme vous pouvez le voir dans l'image ci-dessous, et en conjonction avec les informations présentées ci-dessus, la Automator flux de travail s'est achevé sans erreur et n'a traité que les dossiers cibles appropriés, même si d'autres dossiers non cibles ont été envoyés à l'équipe de l Exécuter le Shell script action comme indiqué ci-dessus.
Notez également que des tests supplémentaires ont été effectués avec les dossiers cibles /Folder_Name_N/Converted_Files/
contenant des non .aiff
pour s'assurer qu'à part le déplacement .aiff
le contenu n'a pas dû être explicitement supprimé, par ex. rm .DS_Store
n'était pas nécessaire, car le -r
option de la rm
commande se tenter de supprimer la hiérarchie de fichiers enracinée dans chaque argument de fichier . Vous pouvez également envisager d'utiliser l'option -f
option aussi. (Je l'ai déjà ajouté à mon exemple bash
code alors supprimez-la si vous ne voulez pas l'utiliser. option .)
Exemple bash
code pour le Exécuter le Shell script action :
for d in "$@"; do
[ -d "$d" ] || continue
if [ -d "$d/Converted_Files" ]; then
cd "$d/Converted_Files" || exit
for f in *.aiff; do
mv "$f" ..
done
fi
cd ..
rm -rf "Converted_Files"
done
Notez que le exemple bash
code n'est que cela, et peut ne pas contenir toute la gestion d'erreur qui peut être appropriée/nécessaire/souhaitée. Il incombe toujours à l'utilisateur d'implémenter toute gestion d'erreur appropriée/nécessaire/souhaitée avec n'importe quel système de gestion d'erreurs. code que l'on choisit d'utiliser.
Les tests ont été effectués sous MacOS High Sierra 10.13.6.