Je voudrais transformer le contenu d'un dossier en entrées pour Numbers (ou Excel). Existe-t-il un moyen d'automatiser cette opération ?
Réponses
Trop de publicités?Vous pouvez utiliser Automator.app pour créer un service dans finder.
Ouvrez Automator.
-
Créer un nouveau document de service
-
définir le service reçoit sélectionné Dossiers sur Finder
-
Ajouter un Obtenir le contenu d'un dossier Action.
-
Ajouter un Get Exécuter Applescript Action.
-
remplacer le contenu de l'applescript par l'applescript ci-dessous.
.
on run {input, parameters}
set theCsv to ""
repeat with i from 1 to number of items in input
tell application "Finder" to set this_item to displayed name of item i of input
set this_item to this_item & ",\\n"
set theCsv to theCsv & this_item
end repeat
do shell script "echo " & quoted form of theCsv & " > ~/Desktop/names.csv"
end run
- enregistrer le document
Maintenant, lorsque vous sélectionnez un dossier dans le Finder, vous pouvez utiliser le menu contextuel pour exécuter le service sur le dossier.
Cela créera un fichier .csv de la liste sur votre bureau. Qui s'ouvrira dans Numbers.
Remarque : si vous avez plus d'un dossier, une seule liste sera créée pour les deux. Il est possible de ne le faire fonctionner que sur le premier dossier ou sur les deux individuellement.
UPDATE :
Un exemple rapide d'applescript pour travailler sur plusieurs dossiers dans la sélection. Ceci créera un fichier individuel pour chaque répertoire dans la sélection du finder.
on run {input, parameters}
set theCsv to ""
set pathList to {}
repeat with i from 1 to number of items in input
tell application "Finder" to set the Cpath to container of item i of input as alias
if (Cpath as alias) is not in pathList then
copy Cpath to end of pathList
end if
end repeat
repeat with a from 1 to number of items in pathList
set this_item to item a of pathList
set thisFileName to ""
tell application "Finder" to set thisFileName to displayed name of (this_item as alias)
set the CSVpath to ""
repeat with i from 1 to number of items in input
tell application "Finder"
set the Cpath to container of item i of input as alias
if container of item i of input as alias is this_item then
set theName to displayed name of item i of input & ",\\n"
set CSVpath to CSVpath & theName
end if
end tell
end repeat
do shell script "echo " & quoted form of CSVpath & " > ~/Desktop/" & quoted form of thisFileName & ".csv"
end repeat
end run
UPDATE 2. Ce deuxième exemple utilise maintenant le nom du dossier comme nom de fichier.
La méthode la plus simple (mais quelque peu manuelle) consiste à sélectionner tous les fichiers dans le Finder, à les copier dans le presse-papiers avec la touche Cmd-C puis de coller les noms dans une feuille Numbers avec Cmd-V .
Si vous voulez plus de contrôle, vous pouvez revenir à Terminal pour l'option copie pas et course
cd /some/folder
ls *.jpeg | pbcopy
pour récupérer le nom de tous les fichiers jpeg de ce dossier dans le presse-papiers.