Forenindex » Programmierung/Entwicklung » AppleScript » Per Script neuen Ordner anlegen und darin eine leere Textdatei

Per Script neuen Ordner anlegen und darin eine leere Textdatei

christiandigital
Beiträge gesamt: 490

27. Jul 2015, 15:05
Bewertung:

gelesen: 2400

Beitrag als Lesezeichen
Hallo zusammen,

ich bin nicht unbedingt der grosse Scripter und benötige daher etwas Hilfe.

Ich habe folgendes Applescript gestrickt:
Es wird ein neuer Ordner erzeugt (Über den Dialog vergebe ich dessen Name) und wähle den Pfad aus.
In diesem Ordner werden definierte Unterordner angelegt.
Innerhalb dieser Hierarchie möchte ich per Applescript noch ein leeres Textdokument mit ebenfalls fix definiertem Namen ("Notizen.txt") anlegen.

Soweit passt das auch, nur erzeugt mein Script das leere Dokument auf dem Desktop und nicht im neu erzeugten Ordner...
Ich vermute, dass ich den Pfad zum Ordner angeben muss, weiss aber nicht genau wie.

Danke schon mal jetzt für eure Hilfe!

Mein Script sieht folgendermassen aus:


property unterOrdner : {"1_Office", "2_Arbeit", "3_Produktion", "4_Vorlagen"}
property unterOrdner1 : {"Bilder", "HQ-PDF", "SQ-PDF"} -- in Ordner "3_Produktion"


(display dialog "Neues Projekt anlegen" & return & "" & return & "Dieser Schritt kann nicht rückgängig gemacht werden!" & return & "" buttons {"Projekt anlegen", "Eingabe Abbrechen"} default button 1 with icon 0 with title "Christian)


set DlogResult to result

if the button returned of the result is "Eingabe Abbrechen" then
quit me
-- Komplettabbruch und Beenden.

else if the button returned of the result is "Projekt anlegen" then

-- Die Ordneraktion wird ausgeführt.

set AuftrBez to text returned of (display dialog "Bitte Projektname eingeben:" & return & "" default answer "" buttons {"Anlegen"} default button 1 with icon 0 with title "Chrisitan")

set ZielOrdner to choose folder
tell application "Finder"
if AuftrBez is "" then
beep 3
display dialog "Kein Projektname eingegeben" & return & "Es wird kein neues Projekt erstellt."
set AuftrOrdner to (make new folder at desktop)
else
if not (exists folder AuftrBez of ZielOrdner) then
set AuftrOrdner to (make new folder at ZielOrdner with properties {name:AuftrBez})
else
set AuftrOrdner to (folder AuftrBez of ZielOrdner)
end if
end if

repeat with newFolder in unterOrdner
try
make new folder at AuftrOrdner with properties {name:newFolder}
end try
end repeat
open AuftrOrdner
set current view of window of AuftrOrdner to list view

set Pfad to (path to "desk" as string) & "Notizen.txt"
set dRef to open for access file Pfad
close access dRef

end tell

end if
______________________________

Mit freundlichen Grüßen,
Christian Kurz

www.koenigreich.com

Alles wird gut.
______________________________

Per Script neuen Ordner anlegen und darin eine leere Textdatei

Hans Haesler
  
Beiträge gesamt: 5826

27. Jul 2015, 18:21
Bewertung: |||

gelesen: 2350

Beitrag als Lesezeichen
Hallo Christian,

soll die Textdatei nur einmal angelegt werden? Im Zielordner?
Dann sollte es so klappen:

Code
property unterOrdner : {"1_Office", "2_Arbeit", "3_Produktion", "4_Vorlagen"} 
property unterOrdner1 : {"Bilder", "HQ-PDF", "SQ-PDF"} -- in Ordner "3_Produktion"

set DlogResult to button returned of (display dialog "Neues Projekt anlegen" & return ¬
& "" & return & "Dieser Schritt kann nicht rückgängig gemacht werden!" & return ¬
& "" buttons {"Projekt anlegen", "Eingabe Abbrechen"} default button 1 with icon 0 with title "Christian")

if DlogResult is "Eingabe Abbrechen" then
-- Abbruch der Aktion.
error number -128
else if DlogResult is "Projekt anlegen" then
-- Die Aktion wird ausgeführt.
set AuftrBez to text returned of (display dialog "Bitte Projektname eingeben:" & return ¬
& "" default answer "" buttons {"Anlegen"} default button 1 with icon 0 with title "Christian")

set ZielOrdner to choose folder

tell application "Finder"
if AuftrBez is "" then
beep 3
display dialog "Kein Projektname eingegeben" & return & "Es wird kein neues Projekt erstellt."
set AuftrOrdner to (make new folder at desktop)
else
if not (exists folder AuftrBez of ZielOrdner) then
set AuftrOrdner to (make new folder at ZielOrdner with properties {name:AuftrBez})
else
set AuftrOrdner to (folder AuftrBez of ZielOrdner)
end if
end if

repeat with newFolder in unterOrdner
try
make new folder at AuftrOrdner with properties {name:newFolder}
end try
end repeat
open AuftrOrdner
set current view of window of AuftrOrdner to list view

set Pfad to (AuftrOrdner as string) & "Notizen.txt"
set dRef to open for access file Pfad
close access dRef
end tell
end if

Die Sache mit dem 'button returned' ist etwas direkter gestaltet.
Anstelle des 'quit me' wird mit 'error number -128' nur die Ausführung beendet.
Das Erzeugen der Ordner sollte nicht als "Ordneraktion" bezeichnet werden.
Das ist der Ausdruck für etwas ganz anderes.

Fragen: Was ist mit den Unterordnern "Bilder", "HQ-PDF" und "SQ-PDF"?
Sollen diese auch angelegt werden?

Gruss, Hans

Per Script neuen Ordner anlegen und darin eine leere Textdatei

christiandigital
Beiträge gesamt: 490

28. Jul 2015, 08:24
Bewertung:

gelesen: 2298

Beitrag als Lesezeichen
Hallo Hans,

herzlichen lieben Dank für Deinen Support!
Problem gelöst, das Script läuft bei mir ganz wunderbar!
______________________________

Mit freundlichen Grüßen,
Christian Kurz

www.koenigreich.com

Alles wird gut.
______________________________