Orderstruktur kopieren….

1/03/2011

--hubionmac.com 01.03.2011

--duplicates folder structure of directory A to directory B


set scanfolder to POSIX path of (choose folder with prompt "Welches Verzeichnis soll kopiert werden?")

set destifolder to POSIX path of (choose folder with prompt "...und wo soll die Verzeichnisstruktur erstellt werden?")

if destifolder contains scanfolder then error "would be a crazy loop"

do shell script "cd " & quoted form of scanfolder & ";find . -type d -not -iname \"*.*\" -exec mkdir " & quoted form of destifolder & "{} \\;"


beep

display dialog "fertig" giving up after 1

No Comments

AppleScript: CDFinder

14/01/2011

Es musste ja mal so kommen, dass ich auch mal den CDFinder skripte. Aber es war nicht wirklich ein Vergnügen. Es werden zwar einige Befehle angeboten, nur wenn man mal das Suchergebnis einer manuell durchgeführte Suche verskripten möchte... Nun, CDFinder steht Apple Mail in nichts nach (Stichwort outgoing messages).
Also mein Ziel war folgendes: Ich wollte in CDFinder mein Musik-Share nach Titel durchsuchen und dann auf Knopfdruck die Original-Datei einer Datei aus dem Suchergebnis in einen bestimmten Ordner kopieren. So eine Funktion (kopiere Original in Ordner XY) fände ich sogar recht naheliegend bei eine Katalog-Software :-/). Nun sei es drum, ich konnte also nun leider nicht auf die Auswahl im Ergebnisfenster zugreifen, also auch nicht den "complete path" auslesen, wenn das Skript nicht auch die Suche selbst durchführt. Deshalb musste wieder mal GUI-Scripting als Lösung herhalten, öffne die Info, lese Text-Feld XY aus und baue dir daraus einen Datei-Pfad zum kopieren... und kopiere! Nun das Skript auf einen Shortcut...(cmd + J ist noch frei)
Darf ich vorstellen, mein erstes CDFinder Skript:

Read the rest of this article »
No Comments

Apple Mail: EMLX-Datei der ausgewählte Nachricht speichern

29/12/2010
Apple Mail nutzt glaube ich seit Leopard nicht mehr eine fette mbox Datei sondern einzelne .emlx Dateien zum speichern der abgerufenen Emails. So können die Dateien schön einzeln indiziert (Spotlight) werden und können auch recht leicht kopiert werden (TimeMachine). Eine solche EMLX-Datei lässt sich über Quicklook oder Apple Mail betrachten und beinhaltet sogar die in der Email enthaltenen Anhänge.
Dummerweise kann man via AppleScript nicht direkt den Speicherort der Email abfragen, aber da die emlx-Datei nach der ID der Email benannt ist, kann man sie recht leicht im entsprechenden Account-Ordner finden. Das tut dieses Skript also, es sucht sich die emlx-Dateien der ausgewählten Emails kopiert diese auf den Schreibtisch...
Code zum markieren einmal anklicken Code im Skript-Editor öffnen

--hubionmac.com 29.12.2010 EMLX-Dateien ausgewählter Emails in einen Order (Saved_Mails(Acountname) auf dem Schreibtisch kopieren... (4 Chris_Zuerich)


--auswahl aus Apple Mail abfragen

set mymails to my getSelection()

repeat with mymail in mymails

tell application "Mail"

--das Verzeichnis des Email Accounts ausfindig machen

set accountDir to quoted form of POSIX path of ((account directory of account of mailbox of mymail) as alias)

set account_name to (name of account of mailbox of mymail) as text

tell application "Finder" to set temp_dir to quoted form of (POSIX path of (desktop as alias) & "Saved_Mails (" & account_name & ")/")

try

do shell script "mkdir " & temp_dir

end try

--in dem Account-Verzeichnis nach der der Email-Datei suchen und diese kopieren...

set myid to id of mymail

do shell script "find " & accountDir & " -name " & myid & "*.emlx* -exec cp {} " & temp_dir & " \\;"

end tell

end repeat


on getSelection()

tell application "Mail"

set a to selection

if (count of a) < 1 then

error "Eine Mitteilung muss ausgewählt sein."

end if

return a

end tell

end getSelection

Ein Grund für den regen Gebrauch von Wildcards im find-Befehl ist die Tatsache, dass besonder große Emails aufgesplittet werden in .emlx und .emlxpart Dateien. Gemeinsamer Nenner ist aber immer die ID, mit der der Dateiname stets beginnt.
No Comments

Apple Mail: Unter 10.6 Email-Adressen kopieren

23/10/2009
Seit 10.6 kopiert Apple Mail Email-Adressen immer zusammen mit dem Namen. Wählt man also "Adresse kopieren" in Apple Mail aus, bekommt man so etwas in die Zwischenablage kopiert hubionmac <klar_doch_meine_email_posten@hubionmac.com>
Will man aber nun wirklich nur die Email-Adresse kopieren, muss man eine entsprechende Einstellung über defaults write setzten

defaults write com.apple.mail AddressesIncludeNameOnPasteboard -bool NO
No Comments

iPod Playlisten über den Finder kopieren

5/08/2008
Es kann einen schon zur Weißglut bringen, wenn man seine schöne OnTheGo-Playliste nicht mehr vom iPod sichern kann, für solche und andere Fälle gibt es natürlich einen Haufen Tools, mit denen man den iPod kopieren kann. Aber kaum eines ist so simple, klein und elegant wie iTunesFS. Der iPod mit allen Playlisten wird einfach als Volumen gemountet (MacFuse lässt grüßen) und man kann einfach die Playlisten kopieren. Genial, simpel und mit 140 kbyte angenehm klein.
No Comments

CDs/DVDs automatisch nach dem Einlegen kopieren und auswerfen

28/01/2008
Ich sichere gerade meine gesammelten DVDs/CDs auf meinem NAS und das sind so ca. 200.Alle von Hand zu kopieren ist nicht nur nervig, sonder kostet auch viel Zeit, da ich nicht immer gleich mitbekommen, wenn ein Kopiervorgang fertig ist.Deshalb habe ich eine Ordner-Aktion geschrieben, die ich an den unsichtbaren "Volumes" Ordner angehängt habe. Sobald nun ein neues Medium eingelegt wird, wird dieses nach einem kurzen Dialog mit Timeout auf das NAS kopiert und anschließend ausgeworfen.Hier zunächst einmal der Code:  
Code zum markieren einmal anklicken

--Folder action to copy contents of inserted media to some other place...

on adding folder items to this_folder after receiving these_items

try

tell application "Finder"

set b to POSIX path of ((original item of alias file "COPYALIAS" of startup disk) as alias)

end tell

repeat with this_ in these_items

tell application "Finder"

display dialog ("copy " & (name of this_) & "?") as text giving up after 3

set itemname to name of this_

set copypath to (original item of alias file "COPYALIAS" of startup disk)

set a to POSIX path of this_

--set a to (characters 1 through -2 of a) as text

end tell

set bb to checkname_now_suffix(itemname, copypath, false)

do shell script "cp -R " & quoted form of a & " " & quoted form of b & quoted form of bb

tell application "Finder"

eject this_

end tell

end repeat

on error msg

tell application "Finder"

activate

display dialog msg

end tell

end try

end adding folder items to


on checkname_now_suffix(n, D, looped)

tell application "Finder"

set thefiles to name of every item of D

end tell

if thefiles contains n then

if looped = false then

set n to n & " 1"

else

set cc to count of every character of last word of n

set cn to ((last word of n) as integer) + 1

set n to ((characters 1 through (-1 * (cc + 1)) of n) as text) & cn

checkname_now_suffix(n, D, counter, true)

end if

else

return n

end if

end checkname_now_suffix


Man zieht einen Alias von dem Zielverzeichnis direkt auf das Start-Volumen und nennt ihn "COPYALIAS" so weiss das Skript, wohin kopiert werden soll.
No Comments