Spezielle Frage an AS Profis

Dieses Thema im Forum "Scripting und Automatisierung" wurde erstellt von Ferris, 20.12.2002.

  1. Ferris

    Ferris Thread Starter MacUser Mitglied

    26
    0
    18.12.2002
    Hallo zusammen,

    ist es mit Apple Script möglich den verfügbaren Platz auf einer Platte auszulesen und diesen dann z.B. einem Ordner als "Name" zu geben?

    Konkret würde das so aussehen: Festplatte hat z.B. 23GB frei, AS liest das aus und nennt einen bestehenden Ordner um in -> 23GB

    Klar was ich meine :D

    Wenn ja, wie muss so ein Script aussehen? Könnte das einer hier bastelln?

    Wenn es nicht mit Ordnern gehen sollte tuts auch eine Datei die so heisst. Es muss eben sofort ersichtlich sein ohne ein Zusatzprogramm öffnen zu müssen.
    Das ganze sollte dann in bestimmten Abständen "abgeglichen" werden. Also z.B. das Script sollte automatisch alle 3 Stunden laufen.

    Danke für eure Hilfe!
     
  2. IceHouse

    IceHouse MacUser Mitglied

    686
    22
    03.06.2002
    Ich gebe Dir einen Gedankenanstoss, habe aber z.Zt. nicht die Zeit es Dir Mundgerecht zu servieren:

    --
    -- Wir ermitteln, wieviel Prozent der Bootplatte frei ist
    --
    set the percent_free to (((the free space of the disk "IceX") / (the capacity of the disk "IceX")) * 100) div 1

    --
    -- Wir ermitteln, wieviel Megabytes auf der Bootplatte frei sind
    --
    set this_disk to disk "IceX"
    set final_free_space to "Free Space on IceX: " & (free space of this_disk) div 1024 div 1024 div 1000 & " GB" & " / " & percent_free & "%"

    Anhand dieser Beispiele, die ich mir mal fuer ein Ircle Systeminfoscript programmiert habe, laesst sich leicht eine Abfrage deines Wunsches erstellen und auf einen Ordnernamen eines neu erzeugten Ordners anwenden.

    Gruss
    IceHouse
     
  3. Andi

    Andi Kaffeetasse

    7.417
    613
    16.05.2002
    Speicherplatz

    Hallo Ferris,

    ich wollte Dir eigentlich eine elegante Lösung des Problems präsentieren, damit mal was los wird in diesem Forum.

    Der Denkanstoß von IceHouse war ja schon nicht schlecht. Bei dieser Rechnung bekommst Du aber bei 999MB 0GB angezeicgt, da div nur Ganzzahlen aus der Division liefert.

    Meine Idee war es, das Ganze in eine Ordneraktion einzubinden, welche an die Festplatte gehängt wird.

    set alert_message to free space of disk "Namen Deiner Festplatte" as number --der freie Speicherplatz in Bytes
    set alert_message to alert_message / 1024 / 1024 / 1024 -- Umrechnung in Gigabyte
    set alert_message to (round (alert_message * 100)) / 100 & " " & "GB frei" as text -- Rundung auf 2 Stellen nach dem Komma und Erzeugung der Meldung

    Ordneraktionen, die Meldungen liefern (sogar sprechen!) gibt es für das Öffnen oder das Hinzufügen von Objekten. Die obigen Zeilen nur an die Stelle setzen, wo die Ordneraktion die Meldung definiert.

    Wenn Dir die Anzeige in einem Ordner oder Filenamen lieber ist wäre das auch kein Problem. Der Name würde sogar an 1. Stelle erscheinen.

    Leider ist es mir nicht gelungen unter Jaguar 10.2.2 mit dem Scripteditor eine lauffähige Ordneraktion zu erzeugen. Selbst wenn ich eine vorgefertigte Aktion in ein Neus Script paste und abspeichere, läuft die Aktion nicht.
    Bug im Scripteditor? Werde mal bei Gelegenheit mit dem Studio versuchen.

    Unter OS9 sollte es aber über eine Ordneraktion gehen.

    Jetzt ist die Frage, welches System verwendest Du?

    Um ein Script zeitgesteuert ablaufen zu lassen, brauchst Du eine Systemerweiterung. Für das OS 9 würde ich mir das noch zutrauen. Mit Scripts, die unter X im Hintergrund laufen habe ich noch keine Erfahrung.

    Es gibt ein Programm iDo (Script scheduler), mit dem kannst Du Scripts zeitgesteuert laufen lassen. Kostet aber was und für X gibt es nur ne Beta.

    Solltest Du Dich für iDo entscheiden:
    PHP:
    (* Dieses Script wurde von Andi für Ferris erstellt und zeigt den Freien Festplattenplatz in einem Ordneroder Filenamen¬
    dessen Kommentarfeld 
    die erste globale Variable enthältDer Name der Festplatte wird in der zweiten globalen Variablen¬
    festgelegt
    .*)

    property display_freediskspacefile_comment "Dieses Objekt zeigt den freien Speicherplatz von Ferris´Festplatte"
    property watch_out_disk "Namen von Ferris´ Festplatte"

    tell application "Finder"
        
    set myfreespace to free space of disk watch_out_disk as number
        set myfreespace_in_gb to myfreespace 
    1024 1024 1024
        set myfreespace_in_gb_rounded to 
    (round (myfreespace_in_gb 100)) / 100 " " "GB frei" as text
        
    try
            
    ignoring application responses
                set name of 
    (every item of disk watch_out_disk whose comment is the display_freediskspacefile_commentto myfreespace_in_gb_rounded
            end ignoring
        end 
    try
    end tell
    Kann ich Dir das anbieten.

    Gruß Andi
     
  4. Trainspotter

    Trainspotter MacUser Mitglied

    532
    0
    31.10.2002
    ich habe zwar keine ahnung von apple script, aber...

    ...wenn es sich um OSX handelt ist der kernel doch unix, und unter unix kann man doch cron jobs generieren.

    wäre es da nicht möglich das script als cronjob alle 3 stunden laufen zu lassen???
     
  5. Andi

    Andi Kaffeetasse

    7.417
    613
    16.05.2002
    ...

    Hallo Trainspotter,

    Terminal ist eine gute Idee.

    #!/bin/sh
    while true
    do
    osascript ~/path/to/Ferris_Script
    sleep 900
    done

    Müßte glaub ich so aussehen...

    oder wenn das zu sehr ausbremst einen stündlichen Cron Job.

    Es sollte auch möglich sein, alles über ein Terminal Script zu regeln. Ob die schneller laufen als die Apple Scripts?

    Gruß Andi
     
Die Seite wird geladen...
Ähnliche Themen - Spezielle Frage Profis
  1. da_FloZinger
    Antworten:
    1
    Aufrufe:
    219
    Olivetti
    05.07.2016
  2. xTheGamerFlo
    Antworten:
    9
    Aufrufe:
    1.088
    jwemcu
    26.06.2014
  3. stolley
    Antworten:
    3
    Aufrufe:
    762
    oneOeight
    04.08.2013
  4. Monticapone
    Antworten:
    0
    Aufrufe:
    741
    Monticapone
    26.12.2011
  5. IloveSneakers
    Antworten:
    4
    Aufrufe:
    497
    kaimeister
    20.04.2009

Diese Seite empfehlen