Newsgroup: it.comp.macintosh
Titolo: [Applescript] Eliminazione files

Qualcuno sa come fare per eliminare files con gli Applescript?
Se uso il Finder, vanno nel cestino... vorrei passargli un comando da
console, ma nella formattazione delle stringhe non accetta il carattere
"\", necessario per i paths contenenti spazi!
:'(
-- 
Poochie©

 la proprieta` "POSIX path" che puoi usare direttamente.
Meglio usare 'quoted form of POSIX path of ...', per evitare problemi.

 do shell script "rm -f /Users/pippo/Desktop/Nome\\ del\\ file.doc"
Interessante, mi amncava il corretto suo degli "\"! Se ho ben capito nel
secondo caso vanno sempre raddoppiati, però non ho capito come mai nel
primo uno è fuori dalle virgolette e l'altro dentro!
:)
-- 
Poochie©

 wrote:
[CUT]
Chiaro come il sole... l'effetto applescript fa dimenticare il
comportamento di "\" studiato in C 
:)
che esotismo...
Gią che ci sono avrei una minirichiesta:
come scorrere una stringa sostituendo un carattere per un altro?
-- 
Poochie©

 come scorrere una stringa sostituendo un carattere per un altro?
Scasinando qui e là pare ci sia riuscito... ottimizzazioni del
comodissimo applescript sono benvenuti...
set src to "1.2.3.4"
set dst to ""
repeat with i from 1 to length of src
        if (text i thru i of src) is "." then
                set dst to dst & "+"
        else
                set dst to dst & (text i thru i of src)
        end if
end repeat
display dialog src & " => " & dst
-- 
Poochie©

 e` una delle cose meno belle di AppleScript :/
Non è possibile integrare dei comandi Python in AppleScript, un po' come
si fa coi "do shell script"?
-- 
"I have a very simple life, I have my family and I have Apple and Pixar.
And I don't do much else." S. J.

 come si fa coi "do shell script"?
Grazie ad AppScript (
http://www.meandmark.com/xcodebook.html
)
è possibile fare l'inverso, integrare cioè le funzionalità di
AppleScript in Python. Gli script a corredo dimostrano che, grazie
a MacPython, è possibile colloquiare tranquillamente con applicazioni
scriptabili usando dei costrutti dalla sinstassi più sintetica e per
molti preferibile a quella prolissa di AppleScript, che ti costringe
spesso a rileggere una seconda volta ogni riga di un listato
dopo aver percorso inversamente le gerarchie degli oggetti e
averne perso il senso una volta giunti finalmente al momento
dell'accapo.
-- 
Guido

 AppleScript in Python.
Scusatemi, il link giusto di AppScript è
http://freespace.virgin.net/hamish.sanderson/appscript.html
.
Ma neanche quello che ho postato è mica male: vi si possono
saggiare le versioni preliminari di vari capitoli di un
imminente manuale dedicato ai tool a corredo di Xcode.
-
Ciao,
Guido

 oppure (ma e` deciamente peggio):
Mi serve un consiglietto...
Devo svuotare tutti i contenuti di una cartella senza passare per il
cestino, qundi pensavo di passare un comando da console nello script. Ho
notato che però questo non  è un metodo molto sicuro (poi illustrerò il
cataclisma accadutomi ieri), ergo volevo raffinarlo un po'.
passare il comando non è permesso:
  rm -f /dove/voglio/io/*
allora ho fatto:
  cd /dove/voglio/io/; rm -f *
però (sta qui il cataclisma) non sarebbe bello il secondo comando
qualora il primo fallisse, si rischia di cancellare del materiale
essenziale!
di qui l'idea di fare qualcosa tipo:
  cd /dove/voglio/io/; if (pwd == "/dove/voglio/io") rm -f *
però non è certamente corretto e non so bene come lavorare con questo if
da terminale, di qui la mia richiesta di aiuto! Forse c'è una maniera
migliore, ma approfondire questa strada mi farebbe molto piacere nel mio
lento avvicinamento alla console.
PS: nota di quanto mi è successo ieri!
Ieri è successo che anzichè scrivere
  cd /dove/voglio/io/; rm -f *
ho scritto
  cd /dove/voglio/io/*; rm -f *
risultato: è fallito il primo comando e il secondo ha fatto molti danni!
Pensavo avesse cancellato i files presenti nella mia home, ma in realtà
ha pescato nella root (pensavo fossero cmq protetti da password
amministrativa!!!!). Di fatto ho iniziato a vedere cose che non
andavano, i volumi USB non si montavano più, niente internet condivisa
via ethernet e via dicendo... riavvio e mi trovo in bash!! Per fortuna
ho backuppato l'altra sera, ergo ho fatto un archivia e installa per
recuperare la posta di un giorno e ho poi ripristinato il backup totale
fresco di giornata precedente... meno male sia finita così, poteva
andare ben peggio!!
-- 
Poochie©

 do shell script "rm -f \"/mio/path/con spazi/*\""
Ursula! L'ho fatto ieri da Terminale e mi aveva dato un errore... che se
ben ricordo era nome troppo lungo.
Ricopiato dalla console:
poochiepb:~/Desktop/no poochie$ rm -f "/Volumes/NIKON 2500/DCIM/*"
rm: /Volumes/NIKON 2500/DCIM/*: File name too long
Che č?
-- 
Poochie©

 prova a generare lo stesso path con la tab completion...
Mi ero sbagliato sul path, cmq non cambia:
poochiepb:/Volumes/NIKON 2500/DCIM/100NIKON poochie$ rm -f
/Volumes/NIKON\ 2500/DCIM/100NIKON/*
rm: /Volumes/NIKON 2500/DCIM/100NIKON/*: File name too long
-- 
Poochie©

 ma che razza di file vuoi cancellare?
I files contenuti in 
/Volumes/NIKON\ 2500/DCIM/100NIKON/
è per il mio script di autodownload da macchina fotografica!
-- 
Poochie©

 directory? Altre directory? Files? Che nomi?
Al massimo files, mai altre cartelle, durante il test era vuota.
Testato e trovato. Dà quell'errore solo se la cartella era vuota, ma non
mi pare molto logico!!
Inoltre, anche da piena:
poochiepb:~/Desktop/test poochie$ rm -f "/Volumes/NIKON
2500/DCIM/100NIKON/*"
rm: /Volumes/NIKON 2500/DCIM/100NIKON/*: File name too long
Da errore (filename too long)
poochiepb:~/Desktop/test poochie$ rm -f /Volumes/NIKON\
2500/DCIM/100NIKON/*
Questo va sempre!
anche questo funziona sempre:
poochiepb:~/Desktop/test poochie$ rm -f "/Volumes/NIKON\
2500/DCIM/100NIKON/*"
Chiarezza?
La strada dell' "if" comunque continua ad intrigarmi...
-- 
Poochie©

 set mydir to "/Volumes/NIKON 2500/DCIM/100NIKON"
Molto interessante. Pecato mi abbia riavviato il Finder (aveva aperto la
cartella in questione), comunque andava!
-- 
Poochie©

 Se ci sono problemi sono evidentemente altrove, nello script. Com'e`?
Il problema (verificatosi una volta sola durante questi test) si è
verificato quando ho testato da Terminale (e non da script) il:
find "/Volumes/NIKON 2500/DCIM/100NIKON" -type f -delete
Probabilmente in finder non ha digerito bene un update della cartella
che aveva aperto... mi capita abbastanza spesso quando aggiorno le
anteprime con sips (o come si chiama...) mentre il finder ha la cartella
con le immagini aperte, ma non sempre (15%?).
-- 
Poochie©