Ordner erstellen und Dateien hineinpacken

G

GameproHD

Registriert
Thread Starter
Dabei seit
22.04.2014
Beiträge
3
Reaktionspunkte
0
Ich möchte die Antwort aus einem display dialog als Name eines Ordners verwenden den der Skript erstellt.
Das klappt auch noch alles super mit folgendem Skript:


set Display_Dialog_1 to display dialog "Ordnername in das untere Feld eintragen" default answer "Name des Ordners" buttons {"Beenden", "Erstellen"} default button 2
if the button returned of the result is "Erstellen" then
set Name_Beispiel to text returned of Display_Dialog_1
tell application "Finder"
make new folder at ("Macintosh HD") with properties {name:Name_SP}
end tell
end if


Wenn jetzt aber Dateien in eben diesem Ordner erstellt werden sollten, stehe ich echt vor einem Problem da ich ja nicht einen Path zu einem Ordner eintippen kann, dessen Namen ich noch gar nicht weiss.


Bitte um Hilfe

GameproHD
 
Name_Beispiel ≠ Name_SP, aber das nur am Rande.

Du kannst doch den Namen des Ordners aus den Variablen zusammensetzen:

tell application "Finder" to open folder ("Macintosh HD:" & Name_Beispiel)
 
Aber was muss ich dann eingeben damit eine Datei in diesem Ordner erstellt wird?

set Beispiel_File to open for access file ("Macintosh HD:" & A: "Speicherdatei_1.txt") with write permission
write "Test" to Beispiel_File

Das geht ja nicht also wie denn sonst?:confused:

Vielen Dank für alle Antworten

Gamepro HD
 
Hallo GameproHD,

du hast ein & Zeichen vergessen. und A sollte die Ordner variable sein, oder nicht?

Code:
[FONT="Verdana"][size=2][b]set[/b] [color=#3F7F00]Display_Dialog_1[/color] [b]to[/b] [color=#0016B0][b]display dialog[/b][/color] "Ordnername in das untere Feld eintragen" [color=#0016B0]default answer[/color] "Name des Ordners" [color=#0016B0]buttons[/color] {"Beenden", "Erstellen"} [color=#0016B0]default button[/color] 2
[b]if[/b] [b]the[/b] [color=#4315B1]button returned[/color] [b]of[/b] [b]the[/b] [color=#6C04D4]result[/color] [b]is[/b] "Erstellen" [b]then[/b]
	[b]set[/b] [color=#3F7F00]Name_Beispiel[/color] [b]to[/b] [color=#4315B1]text returned[/color] [b]of[/b] [color=#3F7F00]Display_Dialog_1[/color]
	[b]tell[/b] [color=#0000FF][i]application[/i][/color] "Finder"
		[color=#0000FF][b]make[/b][/color] [color=#0000FF]new[/color] [color=#0000FF][i]folder[/i][/color] [color=#0000FF]at[/color] ("Macintosh HD") [color=#0000FF]with properties[/color] {[color=#6C04D4]name[/color]:[color=#3F7F00]Name_Beispiel[/color]}
	[b]end[/b] [b]tell[/b]
[b]end[/b] [b]if[/b]
[b]set[/b] [color=#3F7F00]Beispiel_File[/color] [b]to[/b] [color=#0016B0][b]open for access[/b][/color] [color=#0000FF][i]file[/i][/color] ("Macintosh HD:" & [color=#3F7F00]Name_Beispiel[/color] & ":Speicherdatei_1.txt") [b]with[/b] [color=#0016B0]write permission[/color]
[color=#0016B0][b]write[/b][/color] "Test" [color=#0016B0]to[/color] [color=#3F7F00]Beispiel_File[/color][/size][/FONT]

Grüße

Micha
 
  • Gefällt mir
Reaktionen: Thunderbirds
Wenn man mit AppleScript eine Datei mit open for access öffnet, dann muss man sie auch wieder mit close access schließen, sonst kann beim nächsten mal nicht mehr darauf zugegriffen werden. Das bringt das Problem mit, dass bei einem Fehler die Datei nicht mehr geöffnet werden kann, man sollte also einen try-Block benutzen:

Code:
[COLOR=#000000][FONT=Verdana][B]set[/B] [/FONT][/COLOR][COLOR=#4F8F00][FONT=Verdana]RefNum[/FONT][/COLOR][COLOR=#000000][FONT=Verdana] [B]to[/B] ([/FONT][/COLOR][B]open for access [/B][COLOR=#0433FF][FONT=Verdana][I]file[/I][/FONT][/COLOR][COLOR=#000000][FONT=Verdana] ¬[/FONT][/COLOR][FONT=Verdana]    ":foo:bar" [B]with[/B] [COLOR=#012fbe]write permission[/COLOR])[/FONT]
[FONT=Verdana][B]try[/B][/FONT]
[FONT=Verdana]    [COLOR=#012fbe][B]write[/B][/COLOR] "Hallo Welt" [COLOR=#012fbe]to[/COLOR] [COLOR=#4f8f00]RefNum[/COLOR][/FONT]
[COLOR=#012FBE][FONT=Verdana][COLOR=#000000]    [/COLOR][B]close access [/B][COLOR=#4f8f00]RefNum[/COLOR][/FONT][/COLOR]
[FONT=Verdana][B]on[/B] [B]error[/B][/FONT]
[COLOR=#012FBE][FONT=Verdana][COLOR=#000000]    [/COLOR][B]close access [/B][COLOR=#4f8f00]RefNum[/COLOR][/FONT][/COLOR]
[B]end [/B][B]try[/B]

Sehr einfach kann man in diesem Fall auch ein Shell Skript benutzen:

do shell script "mkdir -p \"/foo/\";cd \"$_\";echo \"Hallo Welt\">bar"

Das erstellt den Ordner foo, wechselt in den Ordner foo und erstellt eine Datei bar mit Inhalt Hallo Welt
 
Vielen dank für eure Antworten, jetzt hat es geklappt.;)
(Das mit dem close access stimmt natürlich, habe ich dummerweise vergessen.)

Grüsse

Gamepro HD
 
Zurück
Oben Unten