
Ich bin gerade dabei, eine riesige Manga-Bibliothek aufzuräumen (hauptsächlich – aber nicht nur – Bilddateien). Jeder Manga hat einen Hauptordner mit Unterordnern, einen für jeden Band.
Manchmal enthalten Volume-Ordner jedoch nur Bilddateien und manchmal auch Unterordner.
Ich hätte gerne ein Skript, das für den ausgewählten Manga-Ordner Folgendes tut:
- Überprüfen Sie, welche Volume-Ordner Unterordner haben
- Reduzieren Sie die Verzeichnisstruktur der Volume-Ordner mit Unterordnern. Anstatt alle Bilder in den übergeordneten Ordner zu legen und die Unterordner zu löschen, möchte ich, dass ein neuer Ordner auf dem Desktop erstellt und alle Bilder der Unterordner darin kopiert werden.
- Benennen Sie den auf dem Desktop erstellten Ordner nach seinem ursprünglichen übergeordneten Ordner um
Vor :
Manga-Ordner
volume1_folder subfolder1 / image1, image2, image3 subfolder2 / image4, image5, image6 subfolder3 / image7, image8, image9 volume2_folder image1, image2, image3, image4, image5, image6, image7, image8, image9 volume3_folder subfolder1 / image1, image2, image3 subfolder2 / image4, image5, image6 subfolder3 / image7, image8, image9
Nach:
Schreibtisch:
volume1_folder image1, image2, image3, image4, image5, image6, image7, image8, image9 volume3_folder image1, image2, image3, image4, image5, image6, image7, image8, image9
Die Originalordner sollten unverändert bleibendamit ich nach falsch abgelegten Dateien etc. suchen kann.
Momentan verwende ich ein AppleScript, das die Verzeichnisstruktur für jeden ausgewählten Volume-Ordner vereinfacht. Es erstellt darin einen neuen Ordner, der nach dem übergeordneten Ordner benannt ist und alle kopierten Bilder enthält.
Was nicht der Fall ist:
- prüfen, welche Volume-Ordner Unterordner haben (ich muss jeden Volume-Ordner einzeln auswählen und jedes Mal das Skript starten)
- Verschieben Sie den erstellten Ordner mit abgeflachter Verzeichnisstruktur auf den Desktop
Ich habe versucht, selbst Änderungen vorzunehmen, aber ich konnte den neuen Ordner entweder auf den Desktop verschieben oder ihn nach dem übergeordneten Ordner umbenennen. Wenn ich die beiden Anweisungen eingab (egal welche zuerst eingegeben wurde), erhielt ich eine Fehlermeldung, dass der Ordner nach der Ausführung der ersten Anweisung nicht gefunden werden konnte. Hier ist das Skript:
tell application "Finder"
set theTopFolder to (selection as alias)
set theFiles to a reference to every file of (entire contents of folder theTopFolder)
set theNewFolder to make new folder at theTopFolder with properties {name:"Flattened Files"}
duplicate theFiles to theNewFolder
set name of theNewFolder to name of theTopFolder
--move theNewFolder to "Macintosh HD:Users:xx:Desktop:"
end tell
Antwort1
tell application "Finder"
repeat with f in (get folders of (POSIX file "/Users/username/manga_folder" as alias))
make new folder at desktop with properties {name:(get name of f)}
duplicate files of entire contents of f to result
end repeat
end tell
Sie können auch einen Shell-Befehl wie diesen verwenden:
cd ~/manga_folder;for d in *;do mkdir ~/Desktop/"$d";find "$d" -type f|while read f;do cp "$f" ~/Desktop/"$d";done;done
Oder wenn Sie GNU cp haben:
cd ~/manga_folder;for d in *;do mkdir ~/Desktop/"$d";find "$d" -type f -exec gcp -t ~/Desktop/"$d" {} +;done