OVH Cloud OVH Cloud

[AS] fichier copié au lieu d'être déplacé (?)

18 réponses
Avatar
pehache
Bonjour,

Question toute bête... Dans un AppleScript je veux déplacer un fichier,
mais le fichier est copié plutÍ´t que déplacé :

------------------------------
set fichier to <quelque chose>
...
tell application "Finder"
move file ("Macintosh SSD:Users:moi:Desktop:" & fichier) to "Macintosh
SSD:mnt:nfs:nonas-web:vrac"
end tell
------------------------------

Une idée du pourquoi ? Je fais de l'AS une fois tous les deux ans, donc
͠ chaque fois je t͢tonne...


--
"...sois ouvert aux idées des autres pour peu qu'elles aillent dans le
même sens que les tiennes.", ST sur fr.bio.medecine
ST passe le mur du çon : <j3nn2hFmqj7U1@mid.individual.net>

8 réponses

1 2
Avatar
pehache
Le 08/02/2022 Í  12:39, "BenoÍ®t L." a écrit :
move monFichier to DisqueExterne
delete monFichier
Puisqu’on est dans un «Â tell application "Finder" » il est normal que
cela agisse comme du drag & drop, non ?

Que se passerait-il si le move était sur le même disque ? (recopie d’un
bout de script dans un autre).
Il ne serait pas plus sͻr de faire un copy puis un delete ?

Rien compris...
--
"...sois ouvert aux idées des autres pour peu qu'elles aillent dans le
même sens que les tiennes.", ST sur fr.bio.medecine
ST passe le mur du çon :
Avatar
josephb
"Benoͮt L." wrote:
Que se passerait-il si le move était sur le même disque ? (recopie d'un
bout de script dans un autre).

Tu veux dire [recopie d'un bout de script enregistré sous forme de
fichier], je suppose ?
Il ne serait pas plus sͻr de faire un copy puis un delete ?

En pur AS, dans un bloc <tell application "Finder">, si l'on retse sur
le même volume (aux restrictions près de certains dossiers verrouillés
par le Système), concernant fichiers et dossiers
[move] se contente de déplacer la cible dans la destination
[duplicate] copie la cible dans la destination
mais, il vaut mieux lire le dictionnaire AS du Finder pour voir les
arguments dont certains sont obscurs.
--
J. B.
Avatar
josephb
pehache wrote:
Je suppose vrai déplacement, c'est le comportement de la commande "mv"
indépendamment du disque de destination.

OK, merci.
--
J. B.
Avatar
josephb
M.V. wrote:
Avec la commande « mv » on obtient bien un déplacement réel et non une
copie.
Si on veut juste copier, « cp » ira très bien mais je sais que tu le
sais. ;-)

Je l'ai peut-être su mais je n'en étais plus sÍ»r du tout ; les retours
d'expérience valent souvent mieux qu'un man ou .sdef laconique.
--
J. B.
Avatar
Benoͮt L.
Le 8 février 2022 Í  13:50, pehache d'un élan de joie s'exprima ainsi :
Le 08/02/2022 Í  12:39, "BenoÍ®t L." a écrit :
move monFichier to DisqueExterne
delete monFichier
Puisqu’on est dans un «Â tell application "Finder" » il est normal que
cela agisse comme du drag & drop, non ?

Que se passerait-il si le move était sur le même disque ? (recopie d’un
bout de script dans un autre).
Il ne serait pas plus sͻr de faire un copy puis un delete ?

Rien compris...

Plus lentement et bien dilué pour réduire le taux de C2H5OH :)
Que se passe-t-il si je copie ce bout de script prévu pour un disque
externe, ou que je fait pointer la variable DisqueExterne sur le disque
o͹ se trouve le fichier ?
Set nouveauDossier to choose folder
Set monFichier to choose file
Tell application "Finder"
move monFichier to nouveauDossier
delete monFichier
end tell
Et si par erreur tu choisis un dossier se trouvant sur le même disque
que celui o͹ est monFichier… tu n’as plus que CCC ou TM pour le revoir.
--
Benoͮt
On pense Í  l'étiquette,
Qu'une fois les vendanges faites.
Avatar
Benoͮt L.
Après mÍ»re réflexion, le 8 février 2022 Í  14:27, Joseph-B eu l'idée
d'écrire :
"Benoͮt L." wrote:
Que se passerait-il si le move était sur le même disque ? (recopie d'un
bout de script dans un autre).

Tu veux dire [recopie d'un bout de script enregistré sous forme de
fichier], je suppose ?
Il ne serait pas plus sͻr de faire un copy puis un delete ?

En pur AS, dans un bloc <tell application "Finder">, si l'on retse sur
le même volume (aux restrictions près de certains dossiers verrouillés
par le Système), concernant fichiers et dossiers
[move] se contente de déplacer la cible dans la destination
[duplicate] copie la cible dans la destination

Oui et si la variable DisqueExterne est modifiée par erreur/maladresse…
il se passe quoi avec un move puis delete ? Tu as perdu ton fichier, par
contre avec un copie puis delete tu as le résultat que tu souhaites et
ce quelque soit le nouvel emplacement.
mais, il vaut mieux lire le dictionnaire AS du Finder pour voir les
arguments dont certains sont obscurs.

C’est le moins qu’on puisse dire. Et faire un tour sur le net pour
trouver des exemples proches de ce qu’on souhaite obtenir.
--
Je sais que je ne sais rien, j'ai donc tout compris.
Avatar
pehache
Le 08/02/2022 Í  15:16, "BenoÍ®t L." a écrit :
Le 8 février 2022 Í  13:50, pehache d'un élan de joie s'exprima ainsi :
Le 08/02/2022 Í  12:39, "BenoÍ®t L." a écrit :


move monFichier to DisqueExterne
delete monFichier
Puisqu’on est dans un «Â tell application "Finder" » il est normal que
cela agisse comme du drag & drop, non ?

Que se passerait-il si le move était sur le même disque ? (recopie d’un
bout de script dans un autre).
Il ne serait pas plus sͻr de faire un copy puis un delete ?

Rien compris...

Plus lentement et bien dilué pour réduire le taux de C2H5OH :)
Que se passe-t-il si je copie ce bout de script prévu pour un disque
externe, ou que je fait pointer la variable DisqueExterne sur le disque
o͹ se trouve le fichier ?
Set nouveauDossier to choose folder
Set monFichier to choose file
Tell application "Finder"
move monFichier to nouveauDossier
delete monFichier
end tell
Et si par erreur tu choisis un dossier se trouvant sur le même disque
que celui o͹ est monFichier…

A priori dans un tel cas l'instruction "delete" va faire une erreur vu
que "monFichier" n'existe plus après le "move".
tu n’as plus que CCC ou TM pour le revoir.

Ou la corbeille. Le "delete" du Finder est un déplacement vers la corbeille.
--
"...sois ouvert aux idées des autres pour peu qu'elles aillent dans le
même sens que les tiennes.", ST sur fr.bio.medecine
ST passe le mur du çon :
Avatar
Benoͮt L.
Avec enthousiasme, le 8 février 2022 Í  15:39, pehache écrivit :
Le 08/02/2022 Í  15:16, "BenoÍ®t L." a écrit :
Le 8 février 2022 Í  13:50, pehache d'un élan de joie s'exprima ainsi :
Le 08/02/2022 Í  12:39, "BenoÍ®t L." a écrit :



move monFichier to DisqueExterne
delete monFichier
Puisqu’on est dans un «Â tell application "Finder" » il est normal que
cela agisse comme du drag & drop, non ?

Que se passerait-il si le move était sur le même disque ? (recopie d’un
bout de script dans un autre).
Il ne serait pas plus sͻr de faire un copy puis un delete ?

Rien compris...

Plus lentement et bien dilué pour réduire le taux de C2H5OH :)
Que se passe-t-il si je copie ce bout de script prévu pour un disque
externe, ou que je fait pointer la variable DisqueExterne sur le disque
o͹ se trouve le fichier ?
Set nouveauDossier to choose folder
Set monFichier to choose file
Tell application "Finder"
move monFichier to nouveauDossier
delete monFichier
end tell
Et si par erreur tu choisis un dossier se trouvant sur le même disque
que celui o͹ est monFichier…

A priori dans un tel cas l'instruction "delete" va faire une erreur vu
que "monFichier" n'existe plus après le "move".

Effectivement, tu vas donc avoir une erreur suivant la destination du
move, avec un copy tu ne l’auras jamais.
tu n’as plus que CCC ou TM pour le revoir.

Ou la corbeille. Le "delete" du Finder est un déplacement vers la corbeille.

Effectivement, sinon c’est rm la solution.
--
C'est pas parce qu'on a rien Í  dire qu'il faut fermer sa gueule.
-+- Audiard dans «Â La Grande Luciole avec une chaussure noire » -+-
1 2