2016-07-30 21 views
1

Ich habe eine ordnungsgemäße Arbeit Barcode, aber wenn ich es mit einigen Aufgaben, wie Kopieren von Dateien hier mischen, gibt es mir Fehler und nicht inkrementieren, es stoppt nach der ersten Kopie, eine Idee, wo ist das Problem? HierApplescript Fortschrittsbalken funktioniert nicht

ist der Code:

tell application "Finder" 
    set selected_items to selection 
    set fileCount to length of selected_items 
end tell 

set progress total steps to fileCount 
set progress completed steps to 0 
set progress description to "Processing Images..." 
set progress additional description to "Preparing to process." 
set a to 1 

tell application "Finder" 
    set theFolder to POSIX file "/Users/graphics/Desktop/1" 
    repeat with x in selected_items 
     set progress additional description to "Processing image " & a & " of " & fileCount 
     duplicate x to theFolder 
     set progress completed steps to a + 1 
     set a to a + 1 
    end repeat 
end tell 
+0

1. Haben Sie es als Applet speichern? 2. Vielleicht enthält die Auswahl des Finders nur Ihr Skript, nachdem Sie darauf geklickt haben? Machen Sie ein 'display dialog x as string' vor dem Duplizieren, um sicher zu sein. 3. Erzählen Sie uns mehr über die Fehler, die Sie bekommen haben. – ShooTerKo

+0

Ich habe es als Anwendung gespeichert, es stoppt nur nach dem ersten, das ist das gesamte Skript, das Sie ausführen könnten und den Fehler sehen, wenn Sie wollen –

+0

Wie starten Sie das Skript? Hast du Punkt 2 meiner Antwort versucht? – ShooTerKo

Antwort

1

Hier ist das Skript, lesen Sie bitte die Hinweise unter:

tell application "Finder" 
    set selected_items to selection 
    set fileCount to count of selected_items 
end tell 

set progress total steps to fileCount 
set progress completed steps to 0 
set progress description to "Processing Images..." 
set progress additional description to "Preparing to process." 
set a to 1 

repeat with x in selected_items 
    set progress additional description to "Processing image " & a & " of " & fileCount 
    tell application "Finder" 
     set theFolder to (path to desktop folder as string) & "1:" 
     duplicate x to theFolder with replacing 
    end tell 
    tell me to set progress completed steps to a + 1 
    set a to a + 1 
end repeat 

Ich zog die set progress... Handler aus dem tell application "Finder" -Block, weil die Anwendung " Finder "kennt die Fortschrittsleiste nicht und hat den Zielordner so korrigiert, dass er mit jedem Desktop-Ordner übereinstimmt. Es funktioniert perfekt jetzt, wenn

  • Das Script ist als Applet gespeichert
  • Das Applet wird über den Dock

gestartet Dies liegt daran,

  • Skript-Editor kann nicht auf den anderen Thread achten, um den Fortschrittsbalken zu aktualisieren, wenn er in Script ausgeführt wird Editor

  • Wenn Sie das Applet per Doppelklick im Finder starten, wird das Applet selbst zur Auswahl, nur weil Sie es anklicken! Starten von der Dockingstation löst dieses Problem!

Spaß Haben, Michael/Hamburg

+0

Eigentlich ist der Zielordner nur ein Platzhalter, ich muss ihn trotzdem woanders ändern und mein Ziel mit diesem Skript ist es in einen Dienst zu stellen, damit ich durch Rechtsklick auf die ausgewählten Dateien darauf zugreifen kann, werde ich deine Lösung versuchen –

+0

Danke, es funktioniert –

Verwandte Themen