2016-05-09 25 views
-1

enter image description here Ich bin nicht sicher, wo am besten, um dies zu veröffentlichen, hoffentlich jemand kann beraten, wenn dies nicht richtig ist, ich bin ein langer Browser gewesen, aber das ist mein erster Beitrag. Wie auch immer ..Ordnerstruktur kopieren und Unterverzeichnisse zusammenfügen

Ich muss automatisieren Kopieren einer Ladung von Ordnern an einen neuen Speicherort und Zusammenführen von Unterverzeichnissen.

Ich werde ABC als Beispiel Textzeichenfolge verwenden, die den Firmennamen darstellt und ein konstanter Wert ist.

Die derzeitige Struktur ist wie:

  • 2012 Jobs

    • ABC12 001-099
      • ABC12-001
        • JPGs
        • roh
        • web
        • TIFFs
      • ABC12-002
      • ABC12-003
      • ...
    • ABC12 100-199
    • ABC12 200-299
  • 0 2013 Jobs
    • ...
  • 2014 Jobs
    • ...

Was ich tun muss, ist diese Struktur an eine neue Position kopieren , aber füge die jpgs und web-Ordner in einem named jpgs zum Beispiel und dem rohen und tiffs in einem anderen Ordner namens tiffs zusammen.

Ich habe ein AppleScript erstellt, um die Ordnerstruktur zu erstellen, aber diese sind offensichtlich alle nur leere Ordner, wäre viel einfacher zu kopieren, was ist schon da und starten Sie erneut, offen für alle Vorschläge, Sie sind die Experten! Dank

Bild zeigt Struktur vor und wie ich es nach wollen: Before and After

+0

'cp -r '? – andlrc

+0

oder rsync (wenn es sich um einen wiederkehrenden Job handelt) – sznowicki

+0

Ich denke, das würde funktionieren, um Ordner manuell zu machen, aber ich möchte, dass es durch jeden Ordner geht und an den neuen Speicherort kopiert und dann die Ordner auf der untersten Ebene zusammenführt, wenn dies möglich ist Mit einem cp-Befehl erweitern Sie bitte Ihre Antwort? –

Antwort

0

Das Skript unten nicht teilweise, was Sie brauchen (ich glaube!).

Es ist für jeden „raw“ im oberen ausgewählten Ordner aussieht (dh der Ordner, der alle „2012 Arbeitsplätze“ enthält 2013 Jobs“, ...)

Für jeden‚raw‘Ordner gefunden sieht aus, ob auf derselben Ebene bereits ein "tiffs" -Ordner existiert (falls nicht, erstellt er es).

Dann verschiebt es alle Dateien von "roh" auf die "Tiffs". Zum Schluss löscht es das leere "rohe".

set TopFolder to choose folder with prompt "Select parent folder to process" 

tell application "Finder" 
set RawsFolder to every folder of entire contents of TopFolder whose (name is "raw") 
repeat with aFolder in RawsFolder 
    set ParentFolder to container of aFolder -- get upper folder 
    set TiffFolder to (ParentFolder as string) & "tiffs" 
    if not (exists TiffFolder) then make new folder in ParentFolder with properties {name:"tiffs"} 
    set FilesRaw to every file of aFolder --get all files from raw folder 
    move FilesRaw to folder TiffFolder -- move them to tiffs folder 
    delete aFolder -- delete the raw folder 
end repeat 
end tell 

abzuschließen, Sie wieder elbe tun müssen, aber mit „web“ Ordner in „JPGs“ kopiert werden. Sie haben 2 Möglichkeiten, das zu tun:

1) Verschieben Sie den "Tell Finder" -Block in Subroutine mit 2 Strings-Parameter (roh, Tiffs), Anpassung des Skripts jedes Auftreten von Raw/Tiffs durch den Parameter zu ersetzen. dann rufst du diese routine mit ("rohe", "tiffs") und nochmal mit ("web", "jpgs")

2) du kopierst einfach den tell finder block und änderst "raw"/"tiffs" "manuell‚web‘/‚jPGs‘

bis zu Ihnen ...

Achtung: vergessen Sie nicht, dies auf einer vollständigen Kopie der Ihre übergeordneten Ordner zu laufen!