Je dois renommer un paquet de fichiers html. Le nom à donner au
fichier est le titre du html, ce qui fait que si je demande à Safari
d'enregistrer le fichier il me propose le bon nom par défaut.
tell application "Safari"
activate
save front document
tell application "System Events"
delay 5
keystroke return
end tell
close front document
end tell
Et ça ne fonctionne pas, le return n'est pas envoyé. Une fois
que j'ai ça, je fais ma boucle en repeat avec les fichiers à gérer et
tout est bon (avec un try dedans au cas où).
Quelqu'un a une idée ?
--
Benoît http://picasaweb.google.com/leraillez/
Avec des fumeurs c'est difficile de s'arrêter. Avec des branleurs,
là, par contre, c'est difficile de continuer.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Patrick Stadelmann
In article <1jmrf4f.1a51plejsc7g1N%, (Benoit) wrote:
Bonjour,
Je dois renommer un paquet de fichiers html. Le nom à donner au fichier est le titre du html, ce qui fait que si je demande à Safari d'enregistrer le fichier il me propose le bon nom par défaut.
tell application "Safari" activate save front document tell application "System Events" delay 5 keystroke return end tell close front document end tell
Et ça ne fonctionne pas, le return n'est pas envoyé. Une fois que j'ai ça, je fais ma boucle en repeat avec les fichiers à gérer et tout est bon (avec un try dedans au cas où).
Quelqu'un a une idée ?
Normal, "save front document" ne rend la main que lorsque la fenêtre est fermée, on ne peut pas l'ouvrir avec une commande et la fermer via le GUI scripting. Il faut donc envoyer un "Commande + S" au lieu d'appeler la commande "save".
Ou, mieux, ne pas utiliser le GUI scripting, par exemple :
set f to (choose folder) as text tell application "Safari" save front document in (f & (name of front document)) end tell
Patrick -- Patrick Stadelmann
In article
<1jmrf4f.1a51plejsc7g1N%benoit.sansspam@leraillez.sansspam.com>,
benoit.sansspam@leraillez.sansspam.com (Benoit) wrote:
Bonjour,
Je dois renommer un paquet de fichiers html. Le nom à donner au
fichier est le titre du html, ce qui fait que si je demande à Safari
d'enregistrer le fichier il me propose le bon nom par défaut.
tell application "Safari"
activate
save front document
tell application "System Events"
delay 5
keystroke return
end tell
close front document
end tell
Et ça ne fonctionne pas, le return n'est pas envoyé. Une fois
que j'ai ça, je fais ma boucle en repeat avec les fichiers à gérer et
tout est bon (avec un try dedans au cas où).
Quelqu'un a une idée ?
Normal, "save front document" ne rend la main que lorsque la fenêtre est
fermée, on ne peut pas l'ouvrir avec une commande et la fermer via le
GUI scripting. Il faut donc envoyer un "Commande + S" au lieu d'appeler
la commande "save".
Ou, mieux, ne pas utiliser le GUI scripting, par exemple :
set f to (choose folder) as text
tell application "Safari"
save front document in (f & (name of front document))
end tell
Patrick
--
Patrick Stadelmann <Patrick.Stadelmann@unine.ch>
In article <1jmrf4f.1a51plejsc7g1N%, (Benoit) wrote:
Bonjour,
Je dois renommer un paquet de fichiers html. Le nom à donner au fichier est le titre du html, ce qui fait que si je demande à Safari d'enregistrer le fichier il me propose le bon nom par défaut.
tell application "Safari" activate save front document tell application "System Events" delay 5 keystroke return end tell close front document end tell
Et ça ne fonctionne pas, le return n'est pas envoyé. Une fois que j'ai ça, je fais ma boucle en repeat avec les fichiers à gérer et tout est bon (avec un try dedans au cas où).
Quelqu'un a une idée ?
Normal, "save front document" ne rend la main que lorsque la fenêtre est fermée, on ne peut pas l'ouvrir avec une commande et la fermer via le GUI scripting. Il faut donc envoyer un "Commande + S" au lieu d'appeler la commande "save".
Ou, mieux, ne pas utiliser le GUI scripting, par exemple :
set f to (choose folder) as text tell application "Safari" save front document in (f & (name of front document)) end tell
Patrick -- Patrick Stadelmann
Patrick Stadelmann
In article <1jmrf4f.1a51plejsc7g1N%, (Benoit) wrote:
Bonjour,
Je dois renommer un paquet de fichiers html. Le nom à donner au fichier est le titre du html, ce qui fait que si je demande à Safari d'enregistrer le fichier il me propose le bon nom par défaut.
tell application "Safari" activate save front document tell application "System Events" delay 5 keystroke return end tell close front document end tell
Et ça ne fonctionne pas, le return n'est pas envoyé. Une fois que j'ai ça, je fais ma boucle en repeat avec les fichiers à gérer et tout est bon (avec un try dedans au cas où).
Quelqu'un a une idée ?
Normal, "save front document" ne rend la main que lorsque la fenêtre est fermée, on ne peut pas l'ouvrir avec une commande et la fermer via le GUI scripting. Il faut donc envoyer un "Commande + S" au lieu d'appeler la commande "save".
Ou, mieux, ne pas utiliser le GUI scripting, par exemple :
set f to (choose folder) as text tell application "Safari" save front document in (f & (name of front document)) end tell
Variante, qui ne crée pas une copie du fichier mais ne fait que changer son nom :
set f to choose file tell application "Safari" open f set n to name of front document close front document end tell tell application "Finder" set name of f to n & ".html" end tell
Patrick -- Patrick Stadelmann
In article
<1jmrf4f.1a51plejsc7g1N%benoit.sansspam@leraillez.sansspam.com>,
benoit.sansspam@leraillez.sansspam.com (Benoit) wrote:
Bonjour,
Je dois renommer un paquet de fichiers html. Le nom à donner au
fichier est le titre du html, ce qui fait que si je demande à Safari
d'enregistrer le fichier il me propose le bon nom par défaut.
tell application "Safari"
activate
save front document
tell application "System Events"
delay 5
keystroke return
end tell
close front document
end tell
Et ça ne fonctionne pas, le return n'est pas envoyé. Une fois
que j'ai ça, je fais ma boucle en repeat avec les fichiers à gérer et
tout est bon (avec un try dedans au cas où).
Quelqu'un a une idée ?
Normal, "save front document" ne rend la main que lorsque la fenêtre est
fermée, on ne peut pas l'ouvrir avec une commande et la fermer via le
GUI scripting. Il faut donc envoyer un "Commande + S" au lieu d'appeler
la commande "save".
Ou, mieux, ne pas utiliser le GUI scripting, par exemple :
set f to (choose folder) as text
tell application "Safari"
save front document in (f & (name of front document))
end tell
Variante, qui ne crée pas une copie du fichier mais ne fait que changer
son nom :
set f to choose file
tell application "Safari"
open f
set n to name of front document
close front document
end tell
tell application "Finder"
set name of f to n & ".html"
end tell
Patrick
--
Patrick Stadelmann <Patrick.Stadelmann@unine.ch>
In article <1jmrf4f.1a51plejsc7g1N%, (Benoit) wrote:
Bonjour,
Je dois renommer un paquet de fichiers html. Le nom à donner au fichier est le titre du html, ce qui fait que si je demande à Safari d'enregistrer le fichier il me propose le bon nom par défaut.
tell application "Safari" activate save front document tell application "System Events" delay 5 keystroke return end tell close front document end tell
Et ça ne fonctionne pas, le return n'est pas envoyé. Une fois que j'ai ça, je fais ma boucle en repeat avec les fichiers à gérer et tout est bon (avec un try dedans au cas où).
Quelqu'un a une idée ?
Normal, "save front document" ne rend la main que lorsque la fenêtre est fermée, on ne peut pas l'ouvrir avec une commande et la fermer via le GUI scripting. Il faut donc envoyer un "Commande + S" au lieu d'appeler la commande "save".
Ou, mieux, ne pas utiliser le GUI scripting, par exemple :
set f to (choose folder) as text tell application "Safari" save front document in (f & (name of front document)) end tell
Variante, qui ne crée pas une copie du fichier mais ne fait que changer son nom :
set f to choose file tell application "Safari" open f set n to name of front document close front document end tell tell application "Finder" set name of f to n & ".html" end tell
Patrick -- Patrick Stadelmann
benoit.sansspam
Patrick Stadelmann wrote:
Normal, "save front document" ne rend la main que lorsque la fenêtre est fermée, on ne peut pas l'ouvrir avec une commande et la fermer via le GUI scripting. Il faut donc envoyer un "Commande + S" au lieu d'appeler la commande "save".
Ou, mieux, ne pas utiliser le GUI scripting, par exemple :
set f to (choose folder) as text tell application "Safari" save front document in (f & (name of front document)) end tell
Merci pour l'explication, j'ai fini par trouver en recopiant des trucs à droite et à gauche, mais :
- c'est lent - ça a fini par bugger puisque je n'ai que les 600 et quelques premiers documents qui ont été géré, les autres ont été ouverts et refermés sans être enregistrés.
Variante, qui ne crée pas une copie du fichier mais ne fait que changer son nom :
set f to choose file tell application "Safari" open f set n to name of front document close front document end tell tell application "Finder" set name of f to n & ".html" end tell
Avec ça je pense que cela ira plus vite et en plus ça tournera en arrière plan, la première version fait qu'on ne peut pas utiliser la machine à cause des keystrokes.
J'en étais avec ce qui suit et je vais essayer d'utiliser ton idée qui doit être beaucoup plus rapide.
tell application "Finder" set the source_folder to choose folder with prompt "Dossier source :" set these_files to every file of the source_folder repeat with i from 1 to the count of these_files set ActiveFile to item i of these_files as alias open ActiveFile tell application "Safari" -- si on va trop vite Safari n'a pas le temps de renommer -- la fenêtre avec le <title> d'où le delay delay 0.2 set n to name of front document close front document try tell application "Finder" set name of ActiveFile to n & ".html" end tell
end try end tell end repeat end tell
Ça fonctionne pour un millier de fichier, il ne me reste plus qu'à tenter sur le gros dossier de 5Ok fichiers. J'ai un doute car je parie que le Finder va me faire un time out lorsqu'il va générer la liste de fichiers donc j'ajoute : with timeout of (30 * 60) seconds
-- Benoît http://picasaweb.google.com/leraillez/
Avec des fumeurs c'est difficile de s'arrêter. Avec des branleurs, là, par contre, c'est difficile de continuer.
Patrick Stadelmann <Patrick.Stadelmann@unine.ch> wrote:
Normal, "save front document" ne rend la main que lorsque la fenêtre est
fermée, on ne peut pas l'ouvrir avec une commande et la fermer via le
GUI scripting. Il faut donc envoyer un "Commande + S" au lieu d'appeler
la commande "save".
Ou, mieux, ne pas utiliser le GUI scripting, par exemple :
set f to (choose folder) as text
tell application "Safari"
save front document in (f & (name of front document))
end tell
Merci pour l'explication, j'ai fini par trouver en recopiant des
trucs à droite et à gauche, mais :
- c'est lent
- ça a fini par bugger puisque je n'ai que les 600 et quelques
premiers documents qui ont été géré, les autres ont été
ouverts et refermés sans être enregistrés.
Variante, qui ne crée pas une copie du fichier mais ne fait que changer
son nom :
set f to choose file
tell application "Safari"
open f
set n to name of front document
close front document
end tell
tell application "Finder"
set name of f to n & ".html"
end tell
Avec ça je pense que cela ira plus vite et en plus ça tournera
en arrière plan, la première version fait qu'on ne peut pas utiliser la
machine à cause des keystrokes.
J'en étais avec ce qui suit et je vais essayer d'utiliser ton
idée qui doit être beaucoup plus rapide.
tell application "Finder"
set the source_folder to choose folder with prompt "Dossier source :"
set these_files to every file of the source_folder
repeat with i from 1 to the count of these_files
set ActiveFile to item i of these_files as alias
open ActiveFile
tell application "Safari"
-- si on va trop vite Safari n'a pas le temps de renommer
-- la fenêtre avec le <title> d'où le delay
delay 0.2
set n to name of front document
close front document
try
tell application "Finder"
set name of ActiveFile to n & ".html"
end tell
end try
end tell
end repeat
end tell
Ça fonctionne pour un millier de fichier, il ne me reste plus
qu'à tenter sur le gros dossier de 5Ok fichiers. J'ai un doute car je
parie que le Finder va me faire un time out lorsqu'il va générer la
liste de fichiers donc j'ajoute :
with timeout of (30 * 60) seconds
--
Benoît http://picasaweb.google.com/leraillez/
Avec des fumeurs c'est difficile de s'arrêter. Avec des branleurs,
là, par contre, c'est difficile de continuer.
Normal, "save front document" ne rend la main que lorsque la fenêtre est fermée, on ne peut pas l'ouvrir avec une commande et la fermer via le GUI scripting. Il faut donc envoyer un "Commande + S" au lieu d'appeler la commande "save".
Ou, mieux, ne pas utiliser le GUI scripting, par exemple :
set f to (choose folder) as text tell application "Safari" save front document in (f & (name of front document)) end tell
Merci pour l'explication, j'ai fini par trouver en recopiant des trucs à droite et à gauche, mais :
- c'est lent - ça a fini par bugger puisque je n'ai que les 600 et quelques premiers documents qui ont été géré, les autres ont été ouverts et refermés sans être enregistrés.
Variante, qui ne crée pas une copie du fichier mais ne fait que changer son nom :
set f to choose file tell application "Safari" open f set n to name of front document close front document end tell tell application "Finder" set name of f to n & ".html" end tell
Avec ça je pense que cela ira plus vite et en plus ça tournera en arrière plan, la première version fait qu'on ne peut pas utiliser la machine à cause des keystrokes.
J'en étais avec ce qui suit et je vais essayer d'utiliser ton idée qui doit être beaucoup plus rapide.
tell application "Finder" set the source_folder to choose folder with prompt "Dossier source :" set these_files to every file of the source_folder repeat with i from 1 to the count of these_files set ActiveFile to item i of these_files as alias open ActiveFile tell application "Safari" -- si on va trop vite Safari n'a pas le temps de renommer -- la fenêtre avec le <title> d'où le delay delay 0.2 set n to name of front document close front document try tell application "Finder" set name of ActiveFile to n & ".html" end tell
end try end tell end repeat end tell
Ça fonctionne pour un millier de fichier, il ne me reste plus qu'à tenter sur le gros dossier de 5Ok fichiers. J'ai un doute car je parie que le Finder va me faire un time out lorsqu'il va générer la liste de fichiers donc j'ajoute : with timeout of (30 * 60) seconds
-- Benoît http://picasaweb.google.com/leraillez/
Avec des fumeurs c'est difficile de s'arrêter. Avec des branleurs, là, par contre, c'est difficile de continuer.
benoit.sansspam
JM Marino wrote:
C'est typiquement le genre d'opération qui aurait tout intérêt à être réalisée en Perl !
Certes, mais je fais avec ce que je sais faire, on m'a dit Python aussi ;)
-- Benoît http://picasaweb.google.com/leraillez/
Avec des fumeurs c'est difficile de s'arrêter. Avec des branleurs, là, par contre, c'est difficile de continuer.
JM Marino <public.jmm@gmail.com> wrote:
C'est typiquement le genre d'opération qui aurait tout intérêt à être
réalisée en Perl !
Certes, mais je fais avec ce que je sais faire, on m'a dit
Python aussi ;)
--
Benoît http://picasaweb.google.com/leraillez/
Avec des fumeurs c'est difficile de s'arrêter. Avec des branleurs,
là, par contre, c'est difficile de continuer.
À (at) Fri, 6 Aug 2010 16:33:04 +0200, (Pierre-Alain Dorange) écrivait (wrote):
Benoit wrote:
> C'est typiquement le genre d'opération qui aurait tout intérêt à être > réalisée en Perl !
Certes, mais je fais avec ce que je sais faire, on m'a dit Python aussi ;)
Je confirme en Python c'est assez simple, pour peu d'avoir des notions de python bien sur.
Et en Ruby ? C'est parce que c'est l'été qu'il n'y a personne pour dire qu'en Ruby ce serait tout aussi facile ?
;-)
-- Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/>
pdorange
Paul Gaborit wrote:
>> Certes, mais je fais avec ce que je sais faire, on m'a dit >> Python aussi ;) > > Je confirme en Python c'est assez simple, pour peu d'avoir des notions > de python bien sur.
Et en Ruby ? C'est parce que c'est l'été qu'il n'y a personne pour dire qu'en Ruby ce serait tout aussi facile ?
Si, si Ruby aussi (bien que perso jamais testé) mais ça doit aussi pouvoir se faire en java, PHP, etc...
Ce message est sous licence Creative Commons "by-nc-sa-2.0" <http://creativecommons.org/licenses/by-nc-sa/2.0/fr/>
Paul Gaborit <Paul.Gaborit@invalid.invalid> wrote:
>> Certes, mais je fais avec ce que je sais faire, on m'a dit
>> Python aussi ;)
>
> Je confirme en Python c'est assez simple, pour peu d'avoir des notions
> de python bien sur.
Et en Ruby ? C'est parce que c'est l'été qu'il n'y a personne pour dire
qu'en Ruby ce serait tout aussi facile ?
Si, si Ruby aussi (bien que perso jamais testé) mais ça doit aussi
pouvoir se faire en java, PHP, etc...
>> Certes, mais je fais avec ce que je sais faire, on m'a dit >> Python aussi ;) > > Je confirme en Python c'est assez simple, pour peu d'avoir des notions > de python bien sur.
Et en Ruby ? C'est parce que c'est l'été qu'il n'y a personne pour dire qu'en Ruby ce serait tout aussi facile ?
Si, si Ruby aussi (bien que perso jamais testé) mais ça doit aussi pouvoir se faire en java, PHP, etc...
Ce message est sous licence Creative Commons "by-nc-sa-2.0" <http://creativecommons.org/licenses/by-nc-sa/2.0/fr/>
xavier
Pierre-Alain Dorange wrote:
Si, si Ruby aussi (bien que perso jamais testé) mais ça doit aussi pouvoir se faire en java, PHP, etc...
Fut un temps où n'existait que le C (et aussi Pascal, mébon, ou COBOL, Fortran), bref, à cette époque, quand j'avais un truc de ce genre à faire, je le codais en Lighspeed C, qui devint THINK C, puis fut bouffé en abandonné par Symantec.
-- XAv In your pomp and all your glory you're a poorer man than me, as you lick the boots of death born out of fear.
Si, si Ruby aussi (bien que perso jamais testé) mais ça doit aussi
pouvoir se faire en java, PHP, etc...
Fut un temps où n'existait que le C (et aussi Pascal, mébon, ou COBOL,
Fortran), bref, à cette époque, quand j'avais un truc de ce genre à
faire, je le codais en Lighspeed C, qui devint THINK C, puis fut bouffé
en abandonné par Symantec.
--
XAv
In your pomp and all your glory you're a poorer man than me,
as you lick the boots of death born out of fear.
Si, si Ruby aussi (bien que perso jamais testé) mais ça doit aussi pouvoir se faire en java, PHP, etc...
Fut un temps où n'existait que le C (et aussi Pascal, mébon, ou COBOL, Fortran), bref, à cette époque, quand j'avais un truc de ce genre à faire, je le codais en Lighspeed C, qui devint THINK C, puis fut bouffé en abandonné par Symantec.
-- XAv In your pomp and all your glory you're a poorer man than me, as you lick the boots of death born out of fear.
benoit.sansspam
Xavier wrote:
Pierre-Alain Dorange wrote:
> Si, si Ruby aussi (bien que perso jamais testé) mais ça doit aussi > pouvoir se faire en java, PHP, etc...
Fut un temps où n'existait que le C (et aussi Pascal, mébon, ou COBOL, Fortran), bref, à cette époque, quand j'avais un truc de ce genre à faire, je le codais en Lighspeed C, qui devint THINK C, puis fut bouffé en abandonné par Symantec.
Ahhhhh ! Le Pascal, la fin de mon adolescence, parce qu'au début c'était Basic de chez Basic.
-- Benoît http://picasaweb.google.com/leraillez/
Avec des fumeurs c'est difficile de s'arrêter. Avec des branleurs, là, par contre, c'est difficile de continuer.
> Si, si Ruby aussi (bien que perso jamais testé) mais ça doit aussi
> pouvoir se faire en java, PHP, etc...
Fut un temps où n'existait que le C (et aussi Pascal, mébon, ou COBOL,
Fortran), bref, à cette époque, quand j'avais un truc de ce genre à
faire, je le codais en Lighspeed C, qui devint THINK C, puis fut bouffé
en abandonné par Symantec.
Ahhhhh ! Le Pascal, la fin de mon adolescence, parce qu'au début
c'était Basic de chez Basic.
--
Benoît http://picasaweb.google.com/leraillez/
Avec des fumeurs c'est difficile de s'arrêter. Avec des branleurs,
là, par contre, c'est difficile de continuer.
> Si, si Ruby aussi (bien que perso jamais testé) mais ça doit aussi > pouvoir se faire en java, PHP, etc...
Fut un temps où n'existait que le C (et aussi Pascal, mébon, ou COBOL, Fortran), bref, à cette époque, quand j'avais un truc de ce genre à faire, je le codais en Lighspeed C, qui devint THINK C, puis fut bouffé en abandonné par Symantec.
Ahhhhh ! Le Pascal, la fin de mon adolescence, parce qu'au début c'était Basic de chez Basic.
-- Benoît http://picasaweb.google.com/leraillez/
Avec des fumeurs c'est difficile de s'arrêter. Avec des branleurs, là, par contre, c'est difficile de continuer.
gerald.coyot
Benoit wrote:
Xavier wrote:
> Pierre-Alain Dorange wrote: > > > Si, si Ruby aussi (bien que perso jamais testé) mais ça doit aussi > > pouvoir se faire en java, PHP, etc... > > Fut un temps où n'existait que le C (et aussi Pascal, mébon, ou COBOL, > Fortran), bref, à cette époque, quand j'avais un truc de ce genre à > faire, je le codais en Lighspeed C, qui devint THINK C, puis fut bouffé > en abandonné par Symantec.
Ahhhhh ! Le Pascal, la fin de mon adolescence, parce qu'au début c'était Basic de chez Basic.
Ah le binaire sans compilateur. Si, si, j'ai fait une fois et ça marchait. -- Amitiés, Gérard Cojot 'Bienheureux les fêlés, ils laisseront passer ma lumière'[M.Audiard] http://perso.orange.fr/gerard.cojot/
> Pierre-Alain Dorange <pdorange@pas-de-pub-merci.mac.com> wrote:
>
> > Si, si Ruby aussi (bien que perso jamais testé) mais ça doit aussi
> > pouvoir se faire en java, PHP, etc...
>
> Fut un temps où n'existait que le C (et aussi Pascal, mébon, ou COBOL,
> Fortran), bref, à cette époque, quand j'avais un truc de ce genre à
> faire, je le codais en Lighspeed C, qui devint THINK C, puis fut bouffé
> en abandonné par Symantec.
Ahhhhh ! Le Pascal, la fin de mon adolescence, parce qu'au début
c'était Basic de chez Basic.
Ah le binaire sans compilateur.
Si, si, j'ai fait une fois et ça marchait.
--
Amitiés, Gérard Cojot
'Bienheureux les fêlés, ils laisseront passer ma lumière'[M.Audiard]
http://perso.orange.fr/gerard.cojot/
> Pierre-Alain Dorange wrote: > > > Si, si Ruby aussi (bien que perso jamais testé) mais ça doit aussi > > pouvoir se faire en java, PHP, etc... > > Fut un temps où n'existait que le C (et aussi Pascal, mébon, ou COBOL, > Fortran), bref, à cette époque, quand j'avais un truc de ce genre à > faire, je le codais en Lighspeed C, qui devint THINK C, puis fut bouffé > en abandonné par Symantec.
Ahhhhh ! Le Pascal, la fin de mon adolescence, parce qu'au début c'était Basic de chez Basic.
Ah le binaire sans compilateur. Si, si, j'ai fait une fois et ça marchait. -- Amitiés, Gérard Cojot 'Bienheureux les fêlés, ils laisseront passer ma lumière'[M.Audiard] http://perso.orange.fr/gerard.cojot/