2 votes

Enlever le nom du dossier du nom du fichier basé sur le script existant d'Apple.

J'ai donc cette Apple script ici que j'ai utilisée pour insérer le nom du dossier devant tous les fichiers du dossier. Le script est capable de parcourir chaque dossier et de cibler tous les fichiers et s'est avéré très utile.

    set the_folder to (choose folder)
renamefilesinside(the_folder)

on renamefilesinside(next_folder)
    tell application "Finder"
        set folder_name to name of next_folder & " "
        set folder_contents to every item of next_folder
        repeat with each_item in folder_contents
            if kind of each_item is "folder" then
                my renamefilesinside(each_item)
            else
                set name of each_item to folder_name & " " & name of each_item
            end if
        end repeat
    end tell
end renamefilesinside

Source : https://discussions.apple.com/thread/275167

Cependant, maintenant j'ai supprimé une partie des noms de dossier et je voudrais qu'un effet soustractif soit appliqué aux fichiers, donc le script prendra les fichiers, regardera le nom du dossier parent, et supprimera les caractères partagés.

Malheureusement, je connais très peu les scripts de la Apple, alors j'espère que c'est un ajustement facile que quelqu'un ici peut faire.

Merci pour toute aide que vous pourrez apporter !

1voto

Johnsyweb Points 45395

Vous pouvez obtenir le nom du fichier, puis définir le délimiteur de l'élément de texte sur le nom du dossier contenant le fichier, puis placer les éléments de texte du nom du fichier dans une liste, qui ignorera le délimiteur (le nom du dossier), puis réinitialiser le délimiteur de l'élément de texte sur "" vide et convertir le nom en une chaîne. Il s'agit d'une astuce TRES courante dans Applescript.

set the_folder to (choose folder)
renamefilesinside(the_folder)

on renamefilesinside(next_folder)
    tell application "Finder"
        set folder_name to name of next_folder
        set folder_contents to every item of next_folder
        repeat with each_item in folder_contents
            if kind of each_item is "folder" then
                my renamefilesinside(each_item)
            else
                set n to name of each_item
                set AppleScript's text item delimiters to folder_name
                set n to text items of n
                set AppleScript's text item delimiters to ""
                set n to n as string
                set name of each_item to n
            end if
        end repeat
    end tell
end renamefilesinside

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