2016-08-16 1 views
0

Je veux faire un script qui prend une liste de noms, et déplace certains fichiers qui ont des noms similaires à la liste, dans un autre dossier.Applescript comment faire une liste de fichiers et déplacer des fichiers avec certains noms

Pour le briser, j'ai un dossier avec quelques fichiers « appleClient2016.pdf », « fruitClient2016.pdf », « pearClient2016.pdf »

Maintenant, j'ai une liste de « appleSept », « pearSept " Je veux déplacer ma liste dans un autre dossier.

J'ai besoin d'un script qui reconnaît appleSept et appleClient2016.rtf ont tous deux apple dans la chaîne et vont déplacer le pdf dans un autre dossier. En outre, il ne peut que déplacer des fichiers pdf.

Je suis très nouveau pour AppleScript, mais voici ma tentative

set listOfFruits to {"appleSept", "pearSept"} 

tell application "Finder" 

if folder "moveTest1" contains listOfFruits then 
    move (every file of folder "moveTest1" whose name is listOfFruits) to folder "moveTest2" 
end if 

end tell 

Je sais que j'ai quelques erreurs de syntaxe ici, mais je pense que vous avez l'idée de ce que im va pour. Tout conseil serait grandement apprécié.

Merci!

Répondre

0

Pensez à deux choses concernant listOfFruits qui est une liste de chaînes.

  1. Un dossier ne contient jamais une liste de chaînes contient une liste des fichiers ou des dossiers (contient listOfFruits).
  2. Un fichier n'a jamais un nom qui est une liste de chaînes (dont le nom est listOfFruits).

Fondamentalement, il n'est pas nécessaire de vérifier 1. avec une clause if.

Pour vérifier si un nom est dans une liste de chaînes vous devez écrire is in plutôt que is.
Pour comprendre la syntaxe is in: L'expression a is in {a, b, c} est le même que {a, b, c} contains a

set listOfFruits to {"appleSept", "pearSept"} 

    tell application "Finder" 
     move (every file of folder "moveTest1" whose name is in listOfFruits) to folder "moveTest2" 
    end tell