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

    Bijdrager
    Rob M

    script om bestanden uit verschillende mappen de kopieren

    Ik wil het opzoeken van bestanden in verschillende mappen op de server (Xraid) willen automatiseren met een apple script en een exceldocument met de benaming van het bestand bevat.
    De bestanden bevinden zich in verschillende submappen van 1 hoofdmap op de server (Xraid)
    De bedoeling is om de bestandsnamen (deel vd gehele bestandsbenaming van het bestand zelf) die op een excellijst staan in de hoofdmap en al zijn submappen op te zoeken, dan het bestand kopieëren naar een nieuwe map.

    Echter de benaming op de excellijst is een deel van de bestandsnaam.
    voorbeeld op de excellijst staat N1100021 en de bestandsnaam is N1100021_1400.tif

    Kan iemand mij hierbij helpen?


    Bijdrager
    peterjanp

    Oke als ik je dus goed begrijp wil je eigenlijk een soort van zoek functie maken die bestanden zoekt in een bepaalde map (Xraid). De ingebouwde zoek functie in OS X werkt best wel goed waarom gebruik je die niet?

    Wanneer je in Finder rechts boven in op zoeken drukt kan je naar een bestand zoeken op de hele computer of in de map waar je dat moment in zit (zie afbeelding ik heb daar de map school geselecteerd).


    Bijdrager
    Verwijder

    Volgens mij begrijpt peterjanp het niet goed en wil je iets automatiseren. Ik wil best helpen maar ik heb geen Excel en server en kan het dus niet zelf uitproberen. Wat heb je al en waar loop je vast?


    Bijdrager
    Rob M

    Beste Wilemien

    dit is wat ik eerder op dit forum het gevonden.
    daarin werken 2 dingen niet
    1. zoeken in submappen van de map Map met afbeeldingen
    2. optie dat documentnaam meer bevat dan de naam in het exceldocument
    Daar loopt het op vast. Verder werkt het wel. (als ik in ieder geval <br /> overal weglaat) maar laat het er nu even bij staan.

    set mapMetBestanden to “Xraid:Map met afbeeldingen:” — vergeet de : aan het einde niet!<br />
    set doelMap to “Macintosh HD:Users:gekopieerdebestande:resultaat”<br />
    tell application “Microsoft Excel”<br />
    tell worksheet “Blad1″<br />
    set namen to value of used range<br />
    tell application “Finder”<br />
    repeat with n from 1 to length of namen<br />
    set bestandsnaam to (item n of namen) as string<br />
    duplicate (mapMetBestanden & bestandsnaam) to doelMap with replacing<br />
    end repeat<br />
    end tell<br />
    end tell<br />
    end tell

    ik hoop dat je mij verder kan helpen, alvast bedankt.


    Bijdrager
    Verwijder

    Je bent er bijna. De regel

    duplicate (mapMetBestanden & bestandsnaam) to doelMap with replacing

    moet worden

    duplicate (every file of entire contents of mapMetBestanden whose name starts with bestandsnaam) to doelMap with replacing

    Ik heb het niet getest, probeer eerst even of

    get (every file of entire contents of mapMetBestanden whose name starts with bestandsnaam)

    de gewenste bestanden oplevert. Als er veel mappen en bestanden zijn dan kan het nogal langzaam worden. We moeten dan iets slimmers verzinnen zodat hij niet steeds de complete inhoud van mapMetBestanden gaat ophalen.


    Bijdrager
    Rob M

    Hallo Willemien

    Ik krijg een apple scrip error dat de entire contents niet kan worden gelezen

    hierbij van de error melding bij onderstaand script

    set mapMetBestanden to “XRaid1:HIGH RES NOVA”
    set doelMap to “Macintosh HD:Users:novaflora:Bureaublad:INPUT”
    tell application “Microsoft Excel”
    tell worksheet “Blad1”
    set namen to value of used range
    tell application “Finder”
    repeat with n from 1 to length of namen
    set bestandsnaam to (item n of namen) as string
    duplicate (every file of entire contents of mapMetBestanden whose name starts with bestandsnaam) to doelMap with replacing
    end repeat
    end tell
    end tell
    end tell

    dit is de error code van bovenstaand script:
    error “entire contents of \”XRaid1:HIGH RES NOVA\” kan niet worden opgevraagd. ” number -1728 from «class ects» of “XRaid1:HIGH RES NOVA”

    Bij de optie met get geeft hij bij compileer deze melding ” Een to:doelMap, replacing:true kan niet na deze every file of entire contents of mapMetBestanden whose name starts with bestandsnaam komen.
    zoals ik eerder heb aangegeven heb ik de code aan het einde weggelaten (<br />) want deze geeft de volgende syntacsfout Verwachtte regeleinde maar vond “<”.

    In ieder geval heel veel dank voor je geboden hulp.

    Groet Rob


    Bijdrager
    Verwijder

    Ik was wat vergeten zie ik. Probeer dit eens:

    tell application “Finder”
    set mapMetBestanden to “XRaid1:HIGH RES NOVA” as alias
    set doelMap to “Macintosh HD:Users:novaflora:Bureaublad:INPUT” as alias
    tell application “Microsoft Excel”
    tell worksheet “Blad1”
    set namen to value of used range
    tell application “Finder”
    repeat with naam in namen
    set bestandsnaam to naam as string
    duplicate (every file of entire contents of mapMetBestanden whose name starts with bestandsnaam) to doelMap with replacing
    end repeat
    end tell
    end tell
    end tell
    end tell


    Bijdrager
    Rob M

    Hoi Willemien

    bij compileer geeft hij bij de eerste aanhalingstekens “Finder”

    Syntaxisfout
    Verwachtte expressie, kenmerk of keyform, enz. maar vond onbekend token.


    Bijdrager
    Rob M

    Hoi Willemien

    Sorry maar door het overplakken gaat er waarschijnlijk iets niet zoals het hoort mbt aanhalingstekens.

    Ik krijg nu geen syntaxis fout maar een melding dat

    Finder kreeg een fout: “750003” kan niet in type item worden omgezet.

    Hiermee vervalt dus het voorgaande bericht.

    Ik vind dat we op de goede weg zijn.

    groet Rob


    Bijdrager
    Rob M

    750003 is het eerste nummer dat op het werkblad in excel staat.


    Bijdrager
    Rob M

    Hallo Willemien

    Je script werkt toch goed. Ik heb in excel de nummers als tekst aangegeven. Ben er erg blij mee.

    Nu zit ik alleen met het feit dat er veel mappen met daarin veel bestanden zitten waardoor er een applescript time out is.

    error “Finder kreeg een fout: AppleEvent time-out.” number -1712

    is deze time out aan te passen. Het maakt mij niet zoveel uit dat het wat langer duurt of moet het anders>

    weet je hier misschien nog iets op. De vorige 2 berichten zijn dus niet meer actueel


    Bijdrager
    Verwijder

    Hallo Rob,

    Om de time-outtijd langer te maken zet je om het script

    with timeout of 3600 seconds
    –hier het script
    end timeout

    in plaats van 3600 voor een uur kan je ook een ander aantal seconden invullen.


    Bijdrager
    Rob M

    Hallo Willemien

    Reuze bedankt voor je hulp.

    groet Rob

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

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