8 berichten aan het bekijken - 1 tot 8 (van in totaal 8)
  • Q:

    Bijdrager
    passenger1

    Apple script voor Hazel

    Goede middag,

    kan iemand mij misschien op weg helpen met het volgende:

    ik probeer zo veel mogelijk mijn bestanden consequent te benamen (jaartal – dossiernummer – naam klant – soort document) en dat gaat vlot dankzij oa textExpander en Hazel

    probleem waar ik echter verschillende keren per dag tegenaan loop is dat ik wanneer ik zo’n file naar bv klant wil mailen, de naam van de file manueel moet aanpassen (kwestie van klant niet het gevoel te geven een dossiernummer te zijn)

    concreet voorbeeld: naam van de originele file is “2018 015 – Janssens Jan – factuur” en ik wil de naam van file veranderen in “Janssens Jan”

    ik weet dat het mbv Hazel niet zo moeilijk is om tekens “toe te voegen” aan de bestandsnaam… maar ik heb het omgekeerde nodig… bedoeling is dus dat Hazel “Janssens Jan” uit de originele bestandsnaam filtert en als nieuwe bestandsnaam geeft… dat moet blijkbaar lukken via een Applescript… maar ik heb echt geen idee hoe ik aan zo’n script moet beginnen…

    Alvast bedankt voor de suggesties,

    Peter


    Bijdrager
    TheBigZ

    Klinkt als een cut-probleem:

     
     
    echo "2018 015 - Janssens Jan - factuur" | cut -d'-' -f2
     
     

     

    https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man1/cut.1.html


    Bijdrager
    Ome Kor

    Je kunt in Hazel ook Shell Scripts runnen. Ik heb zoiets om podcasts die ik heb gedownload te hernoemen.

     

    Je zou een speciale map moeten hebben, waar je de bestanden die je wilt hernoemen in kopieert.

     

    Dat script van TheBigZ zou je dan dan in Hazel op de volgende manier kunnen gebruiken:

    Helaas, wat ik probeerde werkt niet. Moet nu naar bed, kom er morgenavond op terug. Ik zal kijken of ik iets kan maken.

     

     

    BTW hoe definieer je een blok met code op dit forum?

    • Deze reactie is gewijzigd 4 maanden, 1 week geleden door  Ome Kor.
    • Deze reactie is gewijzigd 4 maanden, 1 week geleden door  Ome Kor.
    • Deze reactie is gewijzigd 4 maanden, 1 week geleden door  Ome Kor.
    • Deze reactie is gewijzigd 4 maanden, 1 week geleden door  Ome Kor.
    • Deze reactie is gewijzigd 4 maanden, 1 week geleden door  Ome Kor.

    Moderator
    Night

    Zoals vanouds: met

    [code]-tags

     


    Bijdrager
    passenger1

    Bedankt, maar is nog niet echt wat ik zoek (krijg het momenteel trouwens nog niet aan de praat)…

    ik denk eigenlijk meer in de richting van het gebruik van “attributes”… bepaalde (verschillende dus) stukken van de file naam selecteren en tijdelijk toewijzen aan een variabele en die variabelen dan vervolgens gebruiken om nieuwe filenaam en tags te maken…

    Heb op de site van Noodlesoft gevonden dat die manier kan, maar ik snap het echt niet hoe ik het voor mekaar moet krijgen…

    https://www.noodlesoft.com/manual/hazel/attributes-actions/using-applescript-or-javascript/

     


    Bijdrager
    TheBigZ

    Ben je per se op zoek naar een Hazel oplossing, of zou je ook geholpen zijn met een Folder Action? In dat geval kun je zo’n bestand met lange naam naar een (speciaal daarvoor gemaakt) mapje slepen, en dan komt er automatisch een kopie van dat bestand met de korte naam in die map te staan, die je dan vervolgens kunt mailen etc. (Als je daarmee geholpen bent, kan ik je wel verder helpen.)


    Bijdrager
    Ome Kor

    Of een AppleScript programma, waarop je het bestand waarvan je de naam wil wijzigen dropt.

     

    Dit werkt als je er Ă©Ă©n bestand op dropt (het zou met meerdere tegelijk moeten werken, maar om de een of andere reden helaas niet), het bestand met de nieuwe naam wordt naar de Desktop gekopieerd.

    Kopieer de onderstaande code in de (Apple) Scripteditor en bewaar het als structuur programma (dus niet script).

     
     
    on open draggedItems
     
    repeat with thisFile in draggedItems
     
    set HuidigBestand to thisFile as string
     
    tell application "Finder" to set naamBestand to name of thisFile
     
    set TekstScheidingsTeken to AppleScript's text item delimiters
     
    set AppleScript's text item delimiters to "."
     
    set DeExtentie to "." & (the last text item of HuidigBestand)
     
    set HuidigBestand to POSIX path of HuidigBestand
     
    set AppleScript's text item delimiters to TekstScheidingsTeken
     
    set naamBestand to rightString(naamBestand, " – ")
     
    set naamBestand to leftString(naamBestand, " – ")
     
    set naamBestand to naamBestand & DeExtentie
     
    set the bestemmingsFolder to POSIX path of (path to desktop folder) as text
     
    do shell script "cp " & quoted form of HuidigBestand & " " & quoted form of (bestemmingsFolder & naamBestand)
     
    end repeat
     
    end open
     
    --d--   Return the text to the right of a delimiter (full string if not found).
     
    on rightString(str, del)
     
    local str, del, oldTIDs
     
    set oldTIDs to AppleScript's text item delimiters
     
    try
     
    set str to str as string
     
    if str does not contain del then return str
     
    set AppleScript's text item delimiters to del
     
    set str to str's text items 2 thru -1 as string
     
    set AppleScript's text item delimiters to oldTIDs
     
    return str
     
    on error eMsg number eNum
     
    set AppleScript's text item delimiters to oldTIDs
     
    error "Can't rightString: " & eMsg number eNum
     
    end try
     
    end rightString
     
    --d--   Return the text to the left of a delimiter (full string if not found).
     
    on leftString(str, del)
     
    local str, del, oldTIDs
     
    set oldTIDs to AppleScript's text item delimiters
     
    try
     
    set str to str as string
     
    if str does not contain del then return str
     
    set AppleScript's text item delimiters to del
     
    set str to str's first text item
     
    set AppleScript's text item delimiters to oldTIDs
     
    return str
     
    on error eMsg number eNum
     
    set AppleScript's text item delimiters to oldTIDs
     
    error "Can't leftString: " & eMsg number eNum
     
    end try
     
    end leftString
     
     

     

    Bovenstaande code is met een aantal aanpassingen denk ik ook wel te gebruiken met Hazel.

    • Deze reactie is gewijzigd 4 maanden, 1 week geleden door  Ome Kor.
    • Deze reactie is gewijzigd 4 maanden, 1 week geleden door  Ome Kor.

    Bijdrager
    passenger1

    dank u wel, ga ik straks mee aan de slag…

8 berichten aan het bekijken - 1 tot 8 (van in totaal 8)

Je moet ingelogd zijn om een reactie op dit onderwerp te kunnen geven.