Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Recherhe de fichiers sur le nom : Précision demandée

19 réponses
Avatar
pas.de.spam
Bonjour,

Il est assez facile de rechercher des éléments dont le nom contient
quelque-chose, mais est-il possible de chercher des éléments dont le nom
ne contient pas, quelque chose de précis.

J'ai un dossier, qui grossit régulièrement par l'ajout de fichiers. Au
fil de mes sauvegardes (celles manuelles sur DVD), j'ajoute aux fichiers
sauvegardés, à la fin du fichier, les caractères suivants : (*).

Ce que je voudrais pouvoir faire aisément, c'est trouver régulièrement
dans ce dossier, tous les éléments qui ne contiennent pas (*). C'est à
dire ceux qui n'ont pas été sauvegardés sur DVD. Afin que, lorsque leurs
tailles cumulées avoisine celle d'un DVD, je grave.

Je me doute que ce doit être faisable avec le terminal avec une aisance
déconcertante, mais sur ce coup là, si c'était possible en clicodrome,
j'aimerais mieux.

Merci de votre aide.


--
PO.

Pour m'écrire : po_taubaty(arobas)yahoo(point)fr

9 réponses

1 2
Avatar
Patrick Stadelmann
In article <4d484717$0$26174$,
Éric Lévénez wrote:

Le 01/02/11 15:46, Patrick Stadelmann a écrit :

> Il manque dans Mac OS X un moyen d'utiliser Spotlight depuis
> AppleScript. Sinon, en quelque seconde ça serait réglé.

Comme Spotlight est disponible en ligne de commande par "mdfind", pour
les fanas d'encapsulation, il est possible de l'appeler depuis de
l'AppleScript.



Effectivement, c'est nettement plus rapide (environ 5 secondes pour 1600
dossiers). Cette variante considère aussi les fichiers, pas uniquement
les dossiers.


tell application "Finder" to set d to ¬
folder of front window as alias
set s to {}
set f to do shell script "mdfind -onlyin " & quoted form ¬
of POSIX path of d & " "kMDItemFSName!=*(*)""
repeat with i in paragraphs of f
set p to POSIX file (contents of i) as alias
set s to s & p
end repeat

tell application "Finder"
set selection to s
end tell


Ca devrait fonctionner tant qu'il n'y a pas de retour chariot dans les
chemins !

Patrick
--
Patrick Stadelmann
Avatar
pas.de.spam
Patrick Stadelmann wrote:

In article <4d484717$0$26174$,
Éric Lévénez wrote:

> Le 01/02/11 15:46, Patrick Stadelmann a écrit :
>
> > Il manque dans Mac OS X un moyen d'utiliser Spotlight depuis
> > AppleScript. Sinon, en quelque seconde ça serait réglé.
>
> Comme Spotlight est disponible en ligne de commande par "mdfind", pour
> les fanas d'encapsulation, il est possible de l'appeler depuis de
> l'AppleScript.

Effectivement, c'est nettement plus rapide (environ 5 secondes pour 1600
dossiers). Cette variante considère aussi les fichiers, pas uniquement
les dossiers.


tell application "Finder" to set d to ¬
folder of front window as alias
set s to {}
set f to do shell script "mdfind -onlyin " & quoted form ¬
of POSIX path of d & " "kMDItemFSName!=*(*)""
repeat with i in paragraphs of f
set p to POSIX file (contents of i) as alias
set s to s & p
end repeat

tell application "Finder"
set selection to s
end tell


Ca devrait fonctionner tant qu'il n'y a pas de retour chariot dans les
chemins !




merci beaucoup, j'essaye ça de suite.

.....


Nan, ça le fait pas question rapidité...

Le script est lancé depuis plus de 7 minutes, et il est toujours indiqué
"en cours d'éxécution dans la fenêtre de l'éditeur Applescript ...

T'es sûr qu'il ne plonge pas dans la hiérarchie des sous-dossiers ?

ON peut lui demander de faire un Bip ou autre, lorsqu'il a fini ?

--
PO.

Pour m'écrire : po_taubaty(arobas)yahoo(point)fr
Avatar
Patrick Stadelmann
In article <1jw1dwm.1lixsuyffzwa8N%,
(Pierre-Olivier TAUBATY) wrote:

T'es sûr qu'il ne plonge pas dans la hiérarchie des sous-dossiers ?



Ah oui, il va descendre avec Spotlight, justement. Désolé...

Cette fois, ça devrait être la bonne, et ça devrait être quasi
instantané.


tell application "Finder" to set d to ¬
folder of front window as alias
set s to {}
set f to do shell script "ls -d " & quoted form of POSIX path of d ¬
& "* | egrep -v "*(*)""

repeat with i in paragraphs of f
set p to POSIX file (contents of i) as alias
set s to s & p
end repeat

tell application "Finder"
set selection to s
end tell

ON peut lui demander de faire un Bip ou autre, lorsqu'il a fini ?



Tu peux ajouter :

beep

à la fin. Ou simplement regarder les boutons dans la barre d'outil de la
fenêtre : quand le script tourne, le bouton "Stop" est actif, et les
deux autres sont désactivés.

Patrick
--
Patrick Stadelmann
Avatar
Patrick Stadelmann
In article
,
Patrick Stadelmann wrote:

In article <1jw1dwm.1lixsuyffzwa8N%,
(Pierre-Olivier TAUBATY) wrote:

> T'es sûr qu'il ne plonge pas dans la hiérarchie des sous-dossiers ?

Ah oui, il va descendre avec Spotlight, justement. Désolé...

Cette fois, ça devrait être la bonne, et ça devrait être quasi
instantané.



Petit correctif pour aussi sélectionner les noms qui auraient (*)
ailleurs qu'à la fin :


tell application "Finder" to set d to ¬
folder of front window as alias
set s to {}
set f to do shell script "ls -d " & quoted form of POSIX path of d ¬
& "* | egrep -v "*(*)$""

repeat with i in paragraphs of f
set p to POSIX file (contents of i) as alias
set s to s & p
end repeat

tell application "Finder"
set selection to s
end tell


Patrick
--
Patrick Stadelmann
Avatar
pas.de.spam
Patrick Stadelmann wrote:

In article <1jw1dwm.1lixsuyffzwa8N%,
(Pierre-Olivier TAUBATY) wrote:

> T'es sûr qu'il ne plonge pas dans la hiérarchie des sous-dossiers ?

Ah oui, il va descendre avec Spotlight, justement. Désolé...



pas de quoi l'être, quand même ...

Cette fois, ça devrait être la bonne, et ça devrait être quasi
instantané.


tell application "Finder" to set d to ¬
folder of front window as alias
set s to {}
set f to do shell script "ls -d " & quoted form of POSIX path of d ¬
& "* | egrep -v "*(*)""

repeat with i in paragraphs of f
set p to POSIX file (contents of i) as alias
set s to s & p
end repeat

tell application "Finder"
set selection to s
end tell




J'ai ça :
sh: /bin/ls: Argument list too long

apparemment pour la 4ème ligne, commençant par set f to do shell....

j'ai essayé en supprimant le retour à la ligne, mais idem ...

--
PO.

Pour m'écrire : po_taubaty(arobas)yahoo(point)fr
Avatar
pas.de.spam
Patrick Stadelmann wrote:

In article
,
Patrick Stadelmann wrote:

> In article <1jw1dwm.1lixsuyffzwa8N%,
> (Pierre-Olivier TAUBATY) wrote:
>
> > T'es sûr qu'il ne plonge pas dans la hiérarchie des sous-dossiers ?
>
> Ah oui, il va descendre avec Spotlight, justement. Désolé...
>
> Cette fois, ça devrait être la bonne, et ça devrait être quasi
> instantané.

Petit correctif pour aussi sélectionner les noms qui auraient (*)
ailleurs qu'à la fin :


tell application "Finder" to set d to ¬
folder of front window as alias
set s to {}
set f to do shell script "ls -d " & quoted form of POSIX path of d ¬
& "* | egrep -v "*(*)$""

repeat with i in paragraphs of f
set p to POSIX file (contents of i) as alias
set s to s & p
end repeat

tell application "Finder"
set selection to s
end tell




même problème que l'autre script argument too long.

--
PO.

Pour m'écrire : po_taubaty(arobas)yahoo(point)fr
Avatar
Patrick Stadelmann
In article <1jw1n78.2eshx7lbshwlN%,
(Pierre-Olivier TAUBATY) wrote:

même problème que l'autre script argument too long.



C'est le * comme paramètre de "ls" qui pose problème. Nouvel essai ;-)


tell application "Finder" to set d to ¬
folder of front window as alias
set d to POSIX path of d
set s to {}
set f to do shell script "ls " & quoted form of d ¬
& " | egrep -v "*(*)$""

repeat with i in paragraphs of f
set p to POSIX file (d & contents of i) as alias
set s to s & p
end repeat

tell application "Finder"
set selection to s
end tell


Patrick
--
Patrick Stadelmann
Avatar
pas.de.spam
Patrick Stadelmann wrote:

In article <1jw1n78.2eshx7lbshwlN%,
(Pierre-Olivier TAUBATY) wrote:

> même problème que l'autre script argument too long.

C'est le * comme paramètre de "ls" qui pose problème. Nouvel essai ;-)


tell application "Finder" to set d to ¬
folder of front window as alias
set d to POSIX path of d
set s to {}
set f to do shell script "ls " & quoted form of d ¬
& " | egrep -v "*(*)$""

repeat with i in paragraphs of f
set p to POSIX file (d & contents of i) as alias
set s to s & p
end repeat

tell application "Finder"
set selection to s
end tell




Rhaaaaaaaah ! Lovely !

j'ai même pas fini de cliquer que j'avais le beep de fin. Et tous les
dossiers voulus sélectionnés ....

Mille Millions de mille mercis, comme disais un ex habitué de fcsm dont
on n'a plus de nouvelles (Roberto aka le Cantinier).

Par contre, il ne fonctionne que dans l'editeur ApleScript, mais plus du
tout une fois sauvegardé en tant qu'application. Mais ça, c'est pas
grave.

J'ai aussi remarqué, qu'il fallait que rien ne soit sélectionné dans le
dossier principal ...

--
PO.

Pour m'écrire : po_taubaty(arobas)yahoo(point)fr
Avatar
Patrick Stadelmann
In article <1jw2fzy.tot7gu1doxhapN%,
(Pierre-Olivier TAUBATY) wrote:

Par contre, il ne fonctionne que dans l'editeur ApleScript, mais plus du
tout une fois sauvegardé en tant qu'application. Mais ça, c'est pas
grave.



En principe, si tu la lance en maintenant la fenêtre du dossier
principal au premier plan (via le Dock ou Spotlight par exemple) ça doit
fonctionner.

J'ai aussi remarqué, qu'il fallait que rien ne soit sélectionné dans le
dossier principal ...



Normalement ça ne devrait pas avoir d'influence, la commande "set
selection" remplace la sélection courante par la nouvelle. C'est bien ce
qui se passe chez moi en tout cas.

Patrick
--
Patrick Stadelmann
1 2