Datei suchen und umbennen

Dieses Thema im Forum "Scripting und Automatisierung" wurde erstellt von little_pixel, 10.10.2006.

  1. little_pixel

    little_pixel Thread Starter MacUser Mitglied

    Beiträge:
    3.806
    Zustimmungen:
    938
    MacUser seit:
    06.06.2006
    Hallo zusammen,

    ich möchte gerne folgendes umsetzten:

    In einem Ordner gibt es eine Datei, die z.B: „test_identifer.jpg“ heißt.
    Diese Datei möchte ich dann umbenenne.
    Wie bekomme ich die Datei erfasst, anhand des „identifer“.
    Den gesamten Dateinamen der Datei möchte ich dann ändern.

    Mir fehlt „nur“ der Ansatz, wie ich die Datei ausfindig mache. Sie existiert in dem Ordner nur einmal.

    Vielen Dank!

    Viele Grüße
     
  2. clonie

    clonie MacUser Mitglied

    Beiträge:
    4.963
    Zustimmungen:
    257
    MacUser seit:
    10.08.2005
    Apfel + F
    Die Suchfunktion ist doch auf dem Mac nicht zu übersehen?
    Oder hab ich die Frage nicht verstanden?
     
  3. little_pixel

    little_pixel Thread Starter MacUser Mitglied

    Beiträge:
    3.806
    Zustimmungen:
    938
    MacUser seit:
    06.06.2006
    Hallo melamint,

    Ja.
    Da wir hier im AppleScript Bereich sind, ist es nahe liegend, dass die Datei via AppleScript gefunden werden soll :)

    Viele Grüße
     
  4. little_pixel

    little_pixel Thread Starter MacUser Mitglied

    Beiträge:
    3.806
    Zustimmungen:
    938
    MacUser seit:
    06.06.2006
    Hallo zusammen,

    die Lösung ist folgende:

    set theFolder to alias parentORdner
    set test to (items of theFolder whose name contains cIdentifer)

    Wichtig ist die erste Zeile!

    Viele Grüße
     
  5. clonie

    clonie MacUser Mitglied

    Beiträge:
    4.963
    Zustimmungen:
    257
    MacUser seit:
    10.08.2005
    Ohh, Unterforum nicht beachtet...
    Von Applescript hab ich ja gaaar keine Ahnung.
     
  6. TommyC

    TommyC MacUser Mitglied

    Beiträge:
    21
    Zustimmungen:
    0
    MacUser seit:
    19.08.2006
    Hallo.

    Von Dos-Batches Verstehe ich jede Menge, aber der Zweizeiler ist für mich zu abstrakt.

    Vor Kurzem bin ich auf den Mini Gekommen.
    Verstehe noch nicht viel von AS, aber ich lerne sehr schnell.
    Habe Bereits ein Script zum Erstellen Von Ordnern (A-Z) in von mir zuvor im Finder ausgesuchten Ziel.
    Das Ganze kostete mich zwar 3 Stunden, aber für die ersten Gehversuche nicht schlecht.

    Vorhaben:
    Möchte verschiedene Dateiarten in für sie Vorbestimmte Ordner Verschieben Lassen.

    Beispiel:
    JPGs in Ordner Bilder
    PDFs in Ordner Doku
    ZIPs in Ordner ZIP Archive

    Wenn die Ordner automatisch erstellt würden wäre es spitze.
    Erstmal ist für mich wichtig daß ich immer alle Dateien einer Art Verarbeiten kann.

    Gruss.
     
  7. little_pixel

    little_pixel Thread Starter MacUser Mitglied

    Beiträge:
    3.806
    Zustimmungen:
    938
    MacUser seit:
    06.06.2006
    Hallo Tommy,

    das ist zum Glück nicht schwer :)

    Ich würde es wie folgt lösen:

    Code:
    --Alias setzen
    set theFolder to alias parentORdner
    -- Das Suchergebnis ergibt eine Liste
    set suchErgebnis to (items of theFolder whose name contains ".jpg")
    -- erzeugt ein Ordner für die Bilder
    make new folder at (parentORdner) with properties {name:"MeinePics"}
    -- Bewegt die Bilder (Liste) zum neuen Ordner
    move suchErgebnis to parentORdner & "MeinePics"
    
    Auf Funktion habe ich es nicht geprüft, da ich es nur "schnell" im Kopf überlegt habe.
    Aber das dürfte eine gute Grundlage für Dich sein.

    Viel Spass beim Skripten.

    Viele Grüße
     
  8. TommyC

    TommyC MacUser Mitglied

    Beiträge:
    21
    Zustimmungen:
    0
    MacUser seit:
    19.08.2006
    Hallo Little Pixel.

    Wenn Das nur so überlegt war, war es ein Volltreffer.
    Danke für die Beschreibung der einzelnen Zeilen, hat sehr geholfen zu verstehen was ich da schreibe.

    Script habe fertig! :D

    Am Anfang konnte ich keine Ordneraktion Anhängen, also habe ich an den Rechten gebogen. Dann hat mich die repeat Schleife um den Verstand gebracht.
    Mittlerweile ist mein Verstand wieder da.

    Erschrecke nicht wegen der Parameter Tabele.
    Mache dass immer so, weil die komplette Funktion drunter sehr flexibel ist, und so sehr leicht in andere Projekte zu übernehmen. Erweiterung der Parameter Liste ist daher auch kein Problem. Werde das Script Duplizieren und an andere zu Überwachenden Ordner anpassen.

    Sprachausgabe:
    Geil wenn dein Script dich über alles informiert. Meldung am Fenster lenkt nur ab. Das Schimpen werde ich meinem Micky auch noch beibringen, dass aber später.
    Bin Offen für Verbesserungsvorschläge.

    Mein Konstrukt:

    on adding folder items to this_folder after receiving added_items
    tell application "Finder"

    -- Parametrierung
    set PFAD to "Pfad des Überwachten Ordners"
    -- Sprachausgabe
    set MSGA to "New"
    set MSGB to "Files"
    set SPK to "1" -- Sprachausgabe (1-An, Anreder Wert-Aus) Bei Aus ist Beep an.
    set WHO to "Vicky"
    set MESS to ""
    set theFolder to alias PFAD
    set COUNTER to {1, 2, 3, 4, 5, 6, 7, 8}

    set ZIEL1 to "Archive Osla"
    set MSG1 to "Archive"
    set EXT1 to ".rar"

    set ZIEL2 to "Archive"
    set MSG2 to "Archive"
    set EXT2 to ".zip"

    set ZIEL3 to "Archive"
    set MSG3 to "Archive"
    set EXT3 to ".ace"

    set ZIEL4 to "JPGs"
    set MSG4 to "Picture"
    set EXT4 to ".jpg"

    set ZIEL5 to "AVIs"
    set MSG5 to "Video"
    set EXT5 to ".avi"

    set ZIEL6 to "MPGs"
    set MSG6 to "Video"
    set EXT6 to ".mpg"

    set ZIEL7 to "MPGs"
    set MSG7 to "Video"
    set EXT7 to ".mpeg"

    set ZIEL8 to "MUSIK"
    set MSG8 to "Music"
    set EXT8 to ".mp3"

    repeat with CNT in COUNTER

    set EXLIST to {EXT1, EXT2, EXT3, EXT4, EXT5, EXT6, EXT7, EXT8}
    set EXTENTION to item CNT of EXLIST

    set ZILIST to {ZIEL1, ZIEL2, ZIEL3, ZIEL4, ZIEL5, ZIEL6, ZIEL7, ZIEL8}
    set ZIEL to item CNT of ZILIST

    set NACHRICHT to {MSG1, MSG2, MSG3, MSG4, MSG5, MSG6, MSG7, MSG8}
    set NALIST to item CNT of NACHRICHT

    if (not (exists (items of theFolder whose name contains EXTENTION))) then
    set CNT to (CNT + 1)
    else
    set suchErgebnis to {items of theFolder whose name contains EXTENTION}
    if (not (exists folder ZIEL in folder PFAD)) then
    make new folder at (PFAD) with properties {name:ZIEL}
    else
    -- Dient Der Überprüfung:
    --display dialog "Ext: " & EXTENTION & " ZIEL:" & ZIEL & " Nachr:" & NALIST & " Count:" & CNT & " - ((" & suchErgebnis & ")) " giving up after 4
    set MESS to NALIST
    move suchErgebnis to PFAD & ZIEL
    NEUEDATEN(SPK, WHO, MESS, MSGA, MSGB) of me
    end if
    end if
    end repeat
    end tell
    end adding folder items to

    on NEUEDATEN(SPK, WHO, MESS, MSGA, MSGB)
    if SPK is "1" then
    say MSGA & MESS & MSGB using WHO
    else
    beep 1
    end if
    end NEUEDATEN
     
  9. little_pixel

    little_pixel Thread Starter MacUser Mitglied

    Beiträge:
    3.806
    Zustimmungen:
    938
    MacUser seit:
    06.06.2006
    Hallo Tommy,

    ist super! :)
    Ich möchte Dir nur noch einen kleinen Tipp geben:

    Fange bitte Aktionen, wie z.B: move, make new folder usw.
    mit einem try-end try Block ab.
    Damit stellst Du sicher, dass bei einem Fehler nicht das ganze Script abbricht.

    Weiter so! :)

    Viele Grüße
     
Die Seite wird geladen...

Diese Seite empfehlen