Workflow für Automator-Ordneraktionen, um eine Datei in einen Ordner zu kopieren und dann in einen anderen Ordner zu verschieben

-2

Ich benötige einen Automator Folder Action-Workflow, der beim Ablegen von Dateien in den Ordner, dem der Workflow zugewiesen ist, zuerst eine Kopie der abgelegten Dateien in einen anderen Ordner erstellt und dann die ursprünglich abgelegten Dateien in einen anderen Ordner verschiebt.

Angenommen, ich möchte eine einzelne Datei in einem "Hot Folder" ablegen und dann diese Datei zuerst in einen anderen Ordner kopieren und dann dieselbe Datei, die zuerst kopiert wurde, in einen anderen Ordner verschieben.

Auf diese Weise bleibt der Ordner, in dem die Datei ursprünglich abgelegt wurde, leer, während die ursprünglich abgelegte Datei jetzt im Workflow der Automator-Ordneraktion an zwei verschiedenen Speicherorten abgelegt wird, und zwar durch Kopieren und Verschieben der Datei, aus der die Kopie erstellt wurde.

Kann mir jemand zeigen, wie das mit Automator geht?

Gawly
quelle
1
Was haben Sie bisher (auch wenn die Datei nur an einen Ort verschoben wird)?
nohillside
1
Sie können eine Datei nicht in zwei verschiedene Ordner verschieben. Sie kopieren die Datei in zwei verschiedene Ordner oder kopieren sie in einen Ordner und verschieben sie dann in den anderen Ordner.
fd0
@ fd0 Ich bin mir ziemlich sicher, dass das Kopieren in zwei Ordner und Löschen der Quelle genau das ist, was das OP will :-)
nohillside
Ich habe versucht, die Option zum Kopieren und Verschieben zu verwenden, konnte jedoch nur die erste Kopie ausführen. Es scheint, als würde das Skript nach dem Kopieren anhalten und den letzten Zug nicht abschließen. Ich verwende Ordneraktionen in Automator.
Gawly
Wenn Sie bereits etwas haben, fügen Sie es bitte hinzu. Sie profitieren mehr von einer verbesserten Version Ihres eigenen Skripts als von einer anderen, die Sie geschrieben haben
nohillside

Antworten:

1

Dies folgt Beispiel Automator-Ordneraktion Arbeitsablauf funktioniert bei mir.

Dies wurde mit einer Datei und mehreren Dateien gleichzeitig getestet. Über ein halbes Dutzend Tests mit unterschiedlichen Dateianzahlen und -größen wurden durchgeführt. Ich warne jedoch davor, dass dieser einfache Arbeitsablauf beeinträchtigt wird, wenn er mit mehreren wirklich großen Dateien gleichzeitig aufgerufen wird.

Richten Sie die Arbeitsablauf nach dem einzelnen Aktionen in der im Bild weiter unten gezeigten Reihenfolge und der Optionen gezeigt auf den zwei Wert der Variablen abrufen Aktionen . Welche sind in der Reihenfolge:

  • Beginnen Sie mit dem Einstellen der Zielordner zum: Ordneraktion empfängt hinzugefügte Dateien und Ordner
  • Füge hinzu ein Stellen Sie den Wert der Variablen ein Aktion geben die Variable: ein relevanter Name .
  • Füge hinzu ein Wert der Variablen abrufen Aktion , während Sie den Wert von einstellen Variable: Listenfeld zum Wert von Variable: eingestellt in das Stellen Sie den Wert der Variablen ein Aktion und überprüfen Sie die [√] Ignoriere diese Aktionseingabe Kontrollkästchen unter seiner Optionen .
  • Füge hinzu ein Finder-Objekte kopieren Aktion , während Sie die Zu: Listbox zu einem passenden Zielordner .
  • Füge hinzu ein Wert der Variablen abrufen Aktion , während Sie den Wert von einstellen Variable: Listenfeld zum Wert von Variable: eingestellt in das Stellen Sie den Wert der Variablen ein Aktion und überprüfen Sie die [√] Ignoriere diese Aktionseingabe Kontrollkästchen unter seiner Optionen .
  • Füge hinzu ein Finder-Objekte verschieben Aktion, während Sie die Zu: Listenfeld auf den jeweiligen Zielordner .

enter image description here

Hinweis: Diese Arbeitsablauf Die Wahl wurde getroffen, um zu zeigen, wie die Aufgabe ohne die Verwendung von ausgeführt werden kann Shell-Scripting und ein Führen Sie Shell Script aus Aktion , da einige Benutzer möglicherweise nicht zufrieden sind Shell-Scripting .


Wenn Sie sich wohl fühlen Shell-Scripting , dann das Beispiel Automator-Ordneraktion Arbeitsablauf funktioniert auch bei mir

Richten Sie die Arbeitsablauf nach dem einzelnen Aktion im Bild weiter unten gezeigt:

  • Beginnen Sie mit dem Einstellen der Zielordner zum: Ordneraktion empfängt hinzugefügte Dateien und Ordner
  • Füge hinzu ein Führen Sie Shell Script aus Aktion , beim wechseln Eingabe übergeben: von zu stdin zu als Argumente . Ersetzen Sie dann das Original Code mit dem folgenden Beispielcode, während Sie die Wert des copy und movef Variablen zu enthalten die POSIX pathname des Zielordner Die Datei muss zuerst kopiert und anschließend aus dem "Hot Folder", in den sie abgelegt wurde, in den Ordner verschoben werden.

    copyf="/Path/To/Copy To Folder"
    movef="/Path/To/Move To Folder"
    
    for f in "$@"; do
        cp -a "$f" "$copyf"
        mv "$f" "movef"
    done
    

enter image description here

user3439894
quelle
Geben Sie bitte einen berechtigten Grund für die Ablehnung dieser Antwort an, da dies ein funktionierender Workflow für Automator Folder Action für mich ist und letztendlich das tut, wonach das OP gefragt hat. Wenn es bei Ihnen nicht funktioniert, sollten Sie darauf hinweisen, dass dies nicht der Fall ist, damit ich Ihnen helfen kann, das Problem auf Ihrem System zu beheben.
user3439894
Wäre es nicht einfacher, nur eine Shell-Skript-Aktion zu verwenden?
nohillside
1
@nohillside, Bitte siehe aktualisierte Antwort, danke.
user3439894
1
Danke für die Hilfe. Ich habe den Automator-Workflow zum Laufen gebracht, aber es scheint, dass die Dateien im Hot Folder verbleiben, nachdem sie an die Ausgabeordner gesendet wurden. Gibt es eine Möglichkeit, den Ordner im letzten Schritt tatsächlich ZU VERSCHIEBEN? Es scheint, dass im letzten Schritt kopiert und nicht verschoben wird.
Gawly
1
Ich habe auch versucht, Shell-Skripte zu schreiben, aber was geschrieben wurde, schien auch nicht zu funktionieren. Die Dateien wurden nicht in die von mir angegebenen Pfade kopiert / verschoben. Die Quelldatei wurde jedoch aus dem Hot Folder entfernt, sodass sie an einen anderen Ort verschoben wurde, nur nicht in die Pfade, die ich als Variablen eingegeben habe.
Gawly