Dokument an einem bestimmen Pfad erstellen lassen und aktuelles Datum einfügen

S

SirAider

Neues Mitglied
Thread Starter
Dabei seit
18.04.2011
Beiträge
18
Reaktionspunkte
0
Dear Team,

Habe da verschiedene Lösungsansätze komme jedoch nicht auf die endgültige Lösung...
Möchte ein Textdokument auf dem Desktop erstellen und jedes Mal, wenn das Script durchgeführt wird, ins Textfile das aktuelle Datum schreiben.

-Neues Textfile erstellen:

tell application "TextEdit" to ¬
make new document
*funktioniert, aber leider kann ich keinen Pfad angeben und die Datei benennen, ausserdem kriege ich es nicht hin, die Datei nur auf dem Userhome zu erstellen und nicht automatisch zu öffnen...

Fehlgeschlagener Code:
tell application "TextEdit" to make new document ¬
at desktop with properties {name:"Datumdatei"}
set Datei to (path to desktop) & "Datumdatei.txt" as string
set DateiSchreiben to open for access Datei with write permission ¬
write "($date)" to DateiSchreiben ¬
close access DateiSchreiben
*Ergänzung: Wenn möglich sollte die Datei nicht zum Schreiben, geöffnet werden!

Könnt ihr mir helfen?

Gruss S!R
 
Hallo!
Open for access erstellt eine Datei, wenn nicht vorhanden :)

set currdt to current date
set f to ((path to "desk" as text) & "xxx.txt")
set nref to open for access file f with write permission
set oldText to (read nref for (get eof nref))
write (currdt as text) & return to file f starting at eof
close access nref

Gruß
 
  • Gefällt mir
Reaktionen: SirAider
vielen dank für die Lösung :)
funktioniert auch.
Kannst du mir diese Zeile erklären:
set oldText to (read nref for (get eof nref))
?

PS. wie kann ich das rote Exit Kreuz auf dem display Dialog ansprechen?
 
Zuletzt bearbeitet:
*grins
Die Zeile kann natürlich raus. Schön, dass du dich mit dem Inhalt auseinander gesetzt hast.
:)

Zum "roten Kreuz":
Was genau meinst du mit ansprechen? Was hast du vor?
Der Close Button ist ja -auf Grund eines Programmierfehlers- nur in der deutschen Lokalisation des Display Dialoges vorhanden und bringt bei Betätigung bekanntermaßen das Skript zum Absturz.
Möchtest du den "loswerden" ?

Gruß
 
Ja genau, am Besten will ich den gar nicht auf meinem Dialog haben wenns geht :D
 
2 Möglichkeiten:

Entweder du nimmst statt des Standard AppleScript- Display Dialoges den von Automator und baust den in dein Skript ein...
Code:
tell app "Automator Runner"
activate
set dd to display dialog "Test"
end tell
... oder du eliminierst diesen Close Button auf deinem Mac mit folgendem Befehl:
(einmalig im AppleSkript Editor ausführen-- benötigt dein Administrator Passwort)

Code:
do shell script "/usr/bin/find  '/System/Library/ScriptingAdditions/StandardAdditions.osax/Contents/Resources/' -mindepth 3  -type f  -name 'objects.xib' -print0 | /usr/bin/xargs -0  /usr/bin/grep -l '<boolean name=\"hasCloseBox\">TRUE</boolean>' | /usr/bin/xargs   /usr/bin/perl -i -p -e 's/<boolean name=\"hasCloseBox\">TRUE<\\/boolean>/<boolean name=\"hasCloseBox\">FALSE<\\/boolean>/;' " with administrator privileges

Gruß
 
  • Gefällt mir
Reaktionen: SirAider
Ok vielen Dank hat super geklappt und warst mir eine Riesenhilfe! Wo kann ich mich denn bei dir bedanken in diesem Forum (ausser jetzt: DANKE :))?
 
set nref to open for access file f with write permission
set oldText to (read nref for (get eof nref))
write (currdt as text) & return to file f starting at eof
close access nref

:eek:

wer hat nochmal gesagt, Apple Script sei einfacher als bash, C, Python & co?
Kannst du bitte mal deine zweite zitierte Zeile kommentieren? Würde mich mal interessieren, was da genau passiert!? Du hast da ziemlich viel verschachtelt, kann das sein? Eine verschachtelte For-Schleife, read befehl und Variablen-Zuweisung – alles in einer Zeile!? Man man man. und uns wird im Studium beigebracht, man soll leserlich programmieren :D
Was bedeutet die vorletzte Zeile genau? Bis zum '&' versteh ich es, aber ab dann nicht mehr...
 
@ SirAider
Da gibt es einen Danke Knopf schräg links von diesem Text aus gesehen.
Aber über einen "selbstgeschriebenen" persönlichen Dank wie deinen freue ich mich viel mehr :)

Gruß
 
  • Gefällt mir
Reaktionen: SirAider
@Kümmelkorn:

Ich glaube nicht, dass ich wirklich sauber programmiere. Habe es ja nie gelernt.
Aber ich denke, es ist durchaus leserlich :)

get eof nref = get end of file of Variable nref (=der Punkt, an dem die letzte Zeile des Textes anfängt)
read nref for (get eof nref)= Lies nref ab diesem Punkt


Hier etwas Lesestoff

Gruß
 
@ varuna:
Hast du dir Applescript selber beigebracht?
Bin seit 1nem Monat dran..
Musst du dir die Befehle noch angucken oder kannst du die auswendig?
 
Ich glaube nicht, dass ich wirklich sauber programmiere. Habe es ja nie gelernt.
Aber ich denke, es ist durchaus leserlich :)

'return' ist ein Neues-Zeile-Zeichen :faint: :hamma:
Jaja, wenn man mehrere Sprachen im Kopf hat.... :rolleyes:

Danke für den Lesestoff! Hat sehr geholfen! Jetzt ist dein Quellcode wirklich einfach lesbar! Was mich nach wie vor etwas irritiert, ist die Zeile
Code:
set oldText to (read nref [B][U]for[/U][/B] (get eof nref))

Dazu dürfte wohl diese Erklärung aus dem Lesestoff passen:
for <integer>
Hier können wir also eine bestimmte Byteanzahl festlegen, die in die Datei geschrieben werden soll.

Als Hobby-Programmierer find ich es trotzdem sehr gewöhnungsbedürftig, wenn "for" außerhalb von for-Schleifen benutzt wird... Applescript ist manchmal sehr seltsam :mad:
 
@SirAider

Ja, selbst beigebracht.
Nein, ich kenne nicht alle Befehle aller AppleScript-fähigen Programme auf meinem Mac. :hum:

Viel Erfolg bei deinen Bemühungen, AppleScript zu lernen! :)
 
Zurück
Oben Unten