Ce forum est en partie financé par l’affichage de publicités. Merci de désactiver votre bloqueur de publicités pour nous permettre de continuer à fournir ce service.

Sélectionner fichiers à partir d'une liste avec Automator

Discussion dans 'Développement Mac' créé par Guillaume16, 23 Juin 2014.

  1. overdozz

    overdozz Nouveau membre

    Inscrit:
    2 Juillet 2018
    Messages:
    10
    J'aime reçus:
    0
    Ok bon j'ai trouvé, c'est quand j'ai des "=" dans mes nomenclatures que cela ne passe pas.
    Je me suis pourtant basé sur le ASCII comme écrit dans ton code mais j'ai du me tromper..

    penses-tu qu'il y est un moyen de prendre en compte ce symbole ? car il est présent dans les 3/4 de les fichiers.

    En tout cas ta maj pour le log est parfaite, c'est exactement ce que j'avais besoin.

    Encore merci. Vraiment.
     
  2. zeltron54

    zeltron54 Membre émérite

    Inscrit:
    29 Mars 2008
    Messages:
    919
    J'aime reçus:
    128
    Que veux-tu dire par "c'est quand j'ai des "=" dans mes nomenclatures" peux-tu mettre une exemple
    C'est dans les noms de fichiers ?
     
  3. overdozz

    overdozz Nouveau membre

    Inscrit:
    2 Juillet 2018
    Messages:
    10
    J'aime reçus:
    0
    En gros, des fois j'ai des fichier qui se nomment "21159_P02_PVhard_MF.pdf" et des fois "22959_P01_V4=GV=hard_F42.pdf"
    J'ai fais des tests, le premier passe contrairement au deuxième, et quand je change le premier en "21159_P02_PVhard=1_MF.pdf", il n'est plus trouvé.
    Donc pour moi c'est le signe = qui n'a pas l'air d'être reconnu... c'est possible ?
     
  4. zeltron54

    zeltron54 Membre émérite

    Inscrit:
    29 Mars 2008
    Messages:
    919
    J'aime reçus:
    128
    Effectivement , je viens de tester, le signe "=" n'est pas reconnu par le terminal unix comme un caractère possible d'un nom de fichier !
    Pour le moment je n'ai pas de solution à ce problème à part remplacer tous les signes "=" par un autre caractère.
     
  5. overdozz

    overdozz Nouveau membre

    Inscrit:
    2 Juillet 2018
    Messages:
    10
    J'aime reçus:
    0
    Ok ok, je vais chercher de mon côté car malheureusement dans ma config je peux difficilement envisager de remplacer ce caractère de mes fichiers..
    Merci à toi.
     
  6. zeltron54

    zeltron54 Membre émérite

    Inscrit:
    29 Mars 2008
    Messages:
    919
    J'aime reçus:
    128
    Voilà une nouvelle version qui prend en compte le signe "=" et de plus j'ai modifié la recherche pour qu'elle soit insensible à la casse.
    Bon test, j' attend tes résultats.

    Code (Text):
    tell application "Finder"
        set cheminsource to choose folder with prompt "Sélectionnez le dossier contenant les fichiers à copier"
        set chemincible to choose folder with prompt "Sélectionnez le dossier cible"
        set laliste to choose file with prompt "Sélectionnez le fichier liste"
        my inspecter(cheminsource, chemincible, laliste)
    end tell

    on inspecter(source, cible, liste1)
       
        set dossiersource to source as string
        set dossiercible to cible as string
        set destination to dossiercible
       
        open for access liste1
        read liste1
        set tout_le_fichier to the result
        close access liste1
        set AppleScript's text item delimiters to (ASCII character 13)
        set toutes_les_lignes to (every text item of tout_le_fichier) as list
        set AppleScript's text item delimiters to ""
        set tout_le_fichier to ""
       
        set nouveaudossier to 0 as integer
        set atraiter to 0 as integer
        repeat with une_ligne in toutes_les_lignes
            set letest to une_ligne as string
            if nouveaudossier = 1 then
                set dossiercible to dossiercible as string
                set ledossier to une_ligne as string
                tell application "Finder"
                    make new folder at dossiercible with properties {name:ledossier}
                end tell
                set nouveaudossier to 0
                set destination to dossiercible & ledossier
            end if
           
            if letest = "$" then
                set nouveaudossier to 1
                set atraiter to 2
            end if
            if atraiter > 0 then
                set atraiter to atraiter - 1
            else
                try
                    tell application "Finder"
                        set lefichier to do shell script "find  " & quoted form of POSIX path of dossiersource & " -iname " & une_ligne
                        set CheminImage to POSIX file lefichier as string
                       
                        duplicate CheminImage to destination
                    end tell
                on error
                    set lelog to open for access (path to desktop folder as text) & "lelog.txt" as text with write permission -- ouvre le fichier log et ecritles valeur séparé par une tabulation
                    write "Le fichier " & une_ligne & " N'a pas été trouvé" & return to lelog starting at eof
                    close access lelog -- ferme le fichier log
                end try
            end if
           
        end repeat
       
    end inspecter

    tell application "Finder"
        (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
    end tell
     
  7. overdozz

    overdozz Nouveau membre

    Inscrit:
    2 Juillet 2018
    Messages:
    10
    J'aime reçus:
    0
    Alors là.. bravo c'est exactement ce que j'avais besoin ! Tu viens de me faire gagner de précieuses heures au quotidien, je te dois beaucoup !
    Merci beaucoup Zeltron.
     
  8. zeltron54

    zeltron54 Membre émérite

    Inscrit:
    29 Mars 2008
    Messages:
    919
    J'aime reçus:
    128
    Content pour toi !
     
Chargement...

iOccasion - Achetez un produit Apple d'occasion

refurb Apple