Contenu | Rechercher | Menus

Annonce

L'équipe des administrateurs et modérateurs du forum vous invite à prendre connaissance des nouvelles règles.
En cas de besoin, vous pouvez intervenir dans cette discussion.

Ubuntu 18.04 LTS
Ubuntu-fr propose des clés USB de Ubuntu et toutes ses « saveurs » ainsi qu'un magnifique t-shirt pour cette toute nouvelle version d'Ubuntu !

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 24/02/2018, à 11:58

Jarodd

Pyrenamer: ouvrir dans le dossier courant

Bonjour,

Sur mon Ubuntu 16.04, j'utilise Pyrenamer pour renommer en masse des fichiers. Je viens de le réinstaller suite à une réinstalation du système. J'ai utilisé le script indiqué sur la doc.

Auparavant, quand je cliquais sur un fichier ou dans une zone vide de Nautilus, puis clic droit > script > pyrenamer, le programme s'ouvrait dans ce dossier.
Mais sur la nouvelle installation, il s'ouvre toujours dans /home/monuser, quel que soit le fichier ou la zone du clic droit. Je ne sais pas ce qu'il faut changer pour retrouver le comportement antérieur. Pourtant, quand je survole le "script > pyrenamer" de mon menu contextuel, nautilus m'indique (dans un message en bas de la fenêtre) "Lancer Pyrenamer sur les éléments sélectionnés", mais le dossier où sont les fichiers n'est pas ouvert.

Le script en question (dans /home/monuser/.local/share/nemo/scripts) :

#!/bin/bash
#Lance l'application Pyrenamer dans le dossier courant.
#########################################################################
# Nautilus "Renommer en masse" Script #
##########################################################################
if [ "$1" = "" ];then
wdir=${NEMO_SCRIPT_CURRENT_URI#file://}
wdir=${wdir//%20/ }
else
filetype=$(file "$1")
filetype=${filetype##*: }
 
if [ "$filetype" = "directory" ];then
wdir=${NEMO_SCRIPT_SELECTED_FILE_PATHS%%$1*}
wdir=$wdir/$1
else
wdir=${NEMO_SCRIPT_SELECTED_FILE_PATHS%%$1*}
fi
fi
pyrenamer "$wdir"

Merci pour votre aide.


16.04 LTS (32 bits + 64 bits)

En ligne

#2 Le 24/02/2018, à 12:23

J5012

Re : Pyrenamer: ouvrir dans le dossier courant

oui , perso j'avais remarqué aussi ce changements ainsi que d'autres "bugs" ...

au debut de la creation de la page de doc, je trouvais qu'il y avait beaucoup de changements, aussi ai-je cree un brouillon avec mes commentaires ... → https://doc.ubuntu-fr.org/utilisateurs/ … _pyrenamer

nb : commentaires de mes commentaires : ma version scriptee de pyrenamer fonctionne avec caracteres accentués dans les noms de fichiers, mais pas dans les noms de dossiers ... en cause la facon dont je lance pyrenamer avec bash : je n'ai pas trouvé de methode pour conserver les accents dans l'encodage du chemin par bash ...

les commentaires dans ma version du script sont le resultat de mon debug ... wink

Hors ligne

#3 Le 24/02/2018, à 18:21

erresse

Re : Pyrenamer: ouvrir dans le dossier courant

Bonjour,
Ça n'a peut-être rien à voir avec le problème, mais je lis que le script est supposé travailler avec "nemo" et non avec "nautilus".
Si ton gestionnaire de fichiers est "nautilus" et non "nemo", c'est peut-être pour cela que le script ne fonctionne pas...


Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Hors ligne

#4 Le 24/02/2018, à 19:34

Jarodd

Re : Pyrenamer: ouvrir dans le dossier courant

J'ai dit nautilus par raccourci, c'est bien nemo que j'utilise.

Le script fonctionne très bien, pour la fonctionnalité de renommage. C'est juste le fait d'ouvrir directement un dossier qui ne fonctionne pas.


16.04 LTS (32 bits + 64 bits)

En ligne

#5 Le 24/02/2018, à 21:02

erresse

Re : Pyrenamer: ouvrir dans le dossier courant

Jarodd, il y a une erreur dans le script d'appel de "Pyrenamer", je te redonne le fichier corrigé (et mis en forme pour lisibilité) :

#!/bin/bash
#Lance l'application Pyrenamer dans le dossier courant.
#########################################################################
# NEMO "Renommer en masse" Script #
##########################################################################
if [ "$1" = "" ];then
	wdir=${NEMO_SCRIPT_CURRENT_URI#file://}
	wdir=${wdir//%20/ }
else
	filetype=$(file "$1")
	filetype=${filetype##*: }
	if [ "$filetype" = "directory" ];then
		wdir=${NEMO_SCRIPT_SELECTED_FILE_PATHS%%$1*}
		wdir=$wdir$1
	else
		wdir=${NEMO_SCRIPT_SELECTED_FILE_PATHS%%$1*}
	fi
fi
pyrenamer "$wdir"

L'erreur qui plante l'ouverture du répertoire sélectionné est à la ligne :

wdir=$wdir/$1

que j'ai rectifiée en :

		wdir=$wdir$1

Comme tu vois, il y avait un "/" de trop dans l'instruction, ce qui générait un chemin incorrect et faisait planter Pyrenamer.
Souvent, ça tient à peu de chose, n'est-ce pas ?


Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Hors ligne

#6 Le 25/02/2018, à 12:44

Jarodd

Re : Pyrenamer: ouvrir dans le dossier courant

Merci erresse. La doc contient l'erreur, que j'ai recopié.

Par contre même après correction, ça ouvre toujours mon répertoire user, au lieu du répertoire du fichier...

#!/bin/bash
#Lance l'application Pyrenamer dans le dossier courant.
#########################################################################
# Nautilus "Renommer en masse" Script #
##########################################################################
if [ "$1" = "" ];then
wdir=${NEMO_SCRIPT_CURRENT_URI#file://}
wdir=${wdir//%20/ }
else
filetype=$(file "$1")
filetype=${filetype##*: }
 
if [ "$filetype" = "directory" ];then
wdir=${NEMO_SCRIPT_SELECTED_FILE_PATHS%%$1*}
wdir=$wdir$1
else
wdir=${NEMO_SCRIPT_SELECTED_FILE_PATHS%%$1*}
fi
fi
pyrenamer "$wdir"

Dernière modification par Jarodd (Le 25/02/2018, à 12:44)


16.04 LTS (32 bits + 64 bits)

En ligne

#7 Le 25/02/2018, à 13:16

erresse

Re : Pyrenamer: ouvrir dans le dossier courant

En effet, la doc contient bien le texte du script tel que tu l'as présenté. Je viens de la modifier.
Toutefois, je suis surpris que ça ne fonctionne pas pour toi, j'ai fait l'essai chez moi et ça marche correctement : si je sélectionne un répertoire et que je choisis le script par clic droit, PyRenamer se lance et ouvre le répertoire sélectionné.
Note: Ma variante est Ubuntu-Mate, de ce fait j'ai Caja au lieu de Nemo ou Nautilus comme gestionnaire de fichiers, mais normalement ils acceptent tous les mêmes variables et devraient donner le même résultat...


Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Hors ligne

#8 Le 25/02/2018, à 13:18

Jarodd

Re : Pyrenamer: ouvrir dans le dossier courant

Est-ce qu'il faut faire quelque chose pour que la modification soit prise en compte ? Par exemple quand je crée un nouvel alias dans ~/.bash_aliases, je dois faire source .bash_aliases pour que l'alias soit utilisable.


16.04 LTS (32 bits + 64 bits)

En ligne

#9 Le 25/02/2018, à 13:23

erresse

Re : Pyrenamer: ouvrir dans le dossier courant

Non, lorsque tu modifies un script, la prise en compte est immédiate.
Par contre, peut-être que le paramètre "$1" transmis par le gestionnaire de fichiers est différent selon le gestionnaire ?!?
À vérifier...


Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Hors ligne

#10 Le 25/02/2018, à 13:39

Jarodd

Re : Pyrenamer: ouvrir dans le dossier courant

Comment je peux vérifier ça ?


16.04 LTS (32 bits + 64 bits)

En ligne

#11 Le 25/02/2018, à 15:09

erresse

Re : Pyrenamer: ouvrir dans le dossier courant

Tu inséres cette ligne (en adaptant <ton_user> avec ton nom de compte) entre les lignes 5 et 6, juste avant le premier "if...".

echo "Param=$1" > /home/<ton_user>/logscript

Ça te sortira un fichier "logscript" dans ton répertoire personnel. Tu l'affiches dans Gedit pour voir ce qu'il contient comme paramètre.
Pour info, chez moi, lorsque rien n'est sélectionné à l'appel du script, le paramètre est vide, si j'ai sélectionné un fichier ou un répertoire, le paramètre contient juste le nom de l'objet sélectionné (sans le chemin d'accès). Ma version du script fonctionne bien avec cette valeur.
Si ton gestionnaire indique autre chose que juste le nom de l'objet (par exemple le chemin absolu de l'objet) copie la ligne dans ton message pour que je puisse voir ce qu'il convient d'adapter.


Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Hors ligne

#12 Le 25/02/2018, à 16:08

Jarodd

Re : Pyrenamer: ouvrir dans le dossier courant

J'ai essayé plusieurs fois, mais je n'ai pas ce fichier dans mon répertoire user. Comme si ce n'était pas le script qui était lu, et cela expliquerait pourquoi la modif du code ne change rien. Mais je ne sais pas pourquoi il ne serait pas lu...

Edit : je suis un bourricot ! j'ai copié ta ligne sans la modifier, en laissant "<ton_user>" big_smile

Le log indique :
Param=Téléchargements/jdo/mp4

J'ai effectivement fait le clic droit sur un fichier de ce dossier "mp4".
Mais pyrenamer me présente les fichiers qui sont dans Téléchargement/jdo, soit le niveau au dessus.

Dernière modification par Jarodd (Le 25/02/2018, à 16:16)


16.04 LTS (32 bits + 64 bits)

En ligne

#13 Le 25/02/2018, à 16:22

erresse

Re : Pyrenamer: ouvrir dans le dossier courant

Si tu peux voir le script "Renommer en masse" dans la liste des "nemo-scripts" par clic droit, alors c'est bien ce script que tu lances lorsque tu cliques dessus.
Peux-tu le lister :

cat ~/.local/share/nemo/scripts/"Renommer en masse"

qu'on voie si son contenu est bien ce qu'on attend...
Edit: OK, ton message est arrivé avant le mien.

Dernière modification par erresse (Le 25/02/2018, à 16:24)


Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Hors ligne

#14 Le 25/02/2018, à 16:34

erresse

Re : Pyrenamer: ouvrir dans le dossier courant

Donc, c'est bien ce que je craignais, cette andouille de gestionnaire renvoie le chemin (partiel, en plus) avec le nom de l'objet sélectionné...
Il faut modifier légèrement pour s'adapter à cette forme.

wdir="${wdir}${1##*/}"

Essaie avec cette ligne à la place de

wdir=$wdir$1

Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Hors ligne

#15 Le 25/02/2018, à 19:32

Jarodd

Re : Pyrenamer: ouvrir dans le dossier courant

J'ai fait la modif dans le fichier, j'ai le même résultat.

Si je lance le script par un clic droit sur :
/home/jarodd/Téléchargements/jdo/mp4/mon_fichier
pyrenamer s'ouvre dans :
/home/jarodd/Téléchargements/jdo/


16.04 LTS (32 bits + 64 bits)

En ligne

#16 Le 25/02/2018, à 20:28

erresse

Re : Pyrenamer: ouvrir dans le dossier courant

Il insiste, le bougre !
Recopie cette version du script dans ton fichier en remplacement de la version originale :

#!/bin/bash
#Lance l'application Pyrenamer dans le dossier courant.
#########################################################################
# NEMO "Renommer en masse" Script #
##########################################################################
if [ "$1" = "" ];then
	wdir=${NEMO_SCRIPT_CURRENT_URI#file://}
	wdir=${wdir//%20/ }
else
	filetype=$(file "$1")
	filetype=${filetype##*: }
	p="${1##*/}"
	if [ "$filetype" = "directory" ];then
		wdir=${NEMO_SCRIPT_SELECTED_FILE_PATHS%%$p*}
		wdir=$wdir$p
	else
		wdir=${NEMO_SCRIPT_SELECTED_FILE_PATHS%%$p*}
	fi
fi
pyrenamer "$wdir"

Cette fois, ça devrait être bon.
Note explicative: J'ai récupéré dans $p la valeur passée en paramètre $1 sans le chemin, et c'est avec cette valeur ($p) qu'on opère dans les instructions suivantes, afin de conserver le chemin du répertoire courant (pour un fichier sélectionné) et de lui ajouter le répertoire sélectionné (pour ouvrir dans ce répertoire).


Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Hors ligne

#17 Le 25/02/2018, à 20:41

Jarodd

Re : Pyrenamer: ouvrir dans le dossier courant

Toujours pas sad

Je peux mettre des logs peut-être ?


16.04 LTS (32 bits + 64 bits)

En ligne

#18 Le 25/02/2018, à 21:05

erresse

Re : Pyrenamer: ouvrir dans le dossier courant

Oui, ce serait bien parce-que là, je tâtonne trop, dans mon environnement je n'ai pas de problème et ne peux reproduire ce que Nemo ou Nautilus transmettent au script...
Tu peux insérer des lignes juste devant le premier "if..." pour tracer les variables :

log="$HOME/logscript"
echo "Param=$1" > $log
echo "Valuri=${NEMO_SCRIPT_CURRENT_URI}" >> $log
echo "Valsel=${NEMO_SCRIPT_SELECTED_FILE_PATHS}" >> $log

On devrait ainsi voir qu'est-ce que le script reçoit en paramètre et le valeurs des variables d'environnement de Nemo.
Pour le mùoment, on va en rester là, on poursuivra demain si tu es disponible. Mets toujours les traces obtenues sur le forum, ainsi je les regarderai même si tu n'es pas en ligne.
wink

Dernière modification par erresse (Le 25/02/2018, à 21:05)


Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Hors ligne

#19 Le 25/02/2018, à 21:58

Jarodd

Re : Pyrenamer: ouvrir dans le dossier courant

Ca me convient, c'est très sympa de m'aider, et ce n'est pas un problème bloquant smile

Je remets mon script pour être sûr qu'on parle du même code :

#!/bin/bash
#Lance l'application Pyrenamer dans le dossier courant.
#########################################################################
# NEMO "Renommer en masse" Script #
##########################################################################
log="$HOME/logscript"
echo "Param=$1" > $log
echo "Valuri=${NEMO_SCRIPT_CURRENT_URI}" >> $log
echo "Valsel=${NEMO_SCRIPT_SELECTED_FILE_PATHS}
if [ "$1" = "" ];then
	wdir=${NEMO_SCRIPT_CURRENT_URI#file://}
	wdir=${wdir//%20/ }
else
	filetype=$(file "$1")
	filetype=${filetype##*: }
	p="${1##*/}"
	if [ "$filetype" = "directory" ];then
		wdir=${NEMO_SCRIPT_SELECTED_FILE_PATHS%%$p*}
		wdir=$wdir$p
	else
		wdir=${NEMO_SCRIPT_SELECTED_FILE_PATHS%%$p*}
	fi
fi
pyrenamer "$wdir"

Et les logs obtenus :

Param=jdo/mp4/2018-02-24.mp4
Valuri=file:///home/jarodd/T%C3%A9l%C3%A9chargements

Je n'ai pas de valeur pour Valsel (j'ai fait plusieurs essais). Mais pyrenamer ne s'est pas ouvert, c'est peut-être causé par les logs ?

Dernière modification par Jarodd (Le 26/02/2018, à 20:26)


16.04 LTS (32 bits + 64 bits)

En ligne

#20 Le 26/02/2018, à 10:47

erresse

Re : Pyrenamer: ouvrir dans le dossier courant

Oui, la ligne "echo "Valsel=... est fausse, il manque la fin de ligne (c'est moi qui avais mal écrit, mais tu as du prendre le message avant que j'aie corrigé, dommage). C'est pour ça que le script se casse la figure et ne lance pas PyRenamer. Regarde mon message précédent.

Toutefois, de ce que je vois dans la trace partielle qu'on a obtenue, les valeurs passées par Nemo ne correspondent pas du tout à ce qui est normalement prévu dans la documentation des variables d'environnement de Nautilus.

La documentation Ubuntu a écrit :

Variable     | Exemple de valeur     | Rôle
NAUTILUS_SCRIPT_SELECTED_FILE_PATHS    | /home/ifireball/about.html    | Cette variable d'environnement est définie par nautilus, le gestionnaire de fichiers de GNOME, lorsqu'un script est appelé à l'aide d'un clic droit. Elle consiste en une liste, ligne par ligne, des fichiers actuellement sélectionnés. Cette variables ne sera définie que s'il s'agit de fichiers locaux, ne provenant pas d'un partage réseau ou d'une connexion ssh.
NAUTILUS_SCRIPT_SELECTED_URIS    | file:/home/ifireball/about.html    | Cette variable d'environnement est définie par nautilus, le gestionnaire de fichiers de GNOME, lorsque un script est appelé à l'aide d'un clic droit. Elle consiste en une liste, ligne par ligne, des adresses (URI) des fichiers actuellement sélectionnés.
NAUTILUS_SCRIPT_CURRENT_URI    | file:/home/ifireball    | Cette variable d’environnement contient l'adresse (URI) de l'emplacement actuellement affiché dans la fenêtre de nautilus lorsque un script est appelé à l'aide d'un clic droit.
NAUTILUS_SCRIPT_WINDOW_GEOMETRY    | 828x511+251+342    | Cette variable d'environnement contient la position à l'écran de la fenêtre de nautilus lorsque un script est appelé à l'aide d'un clic droit.

1 - Le paramètre transmis en $1 contient une partie du chemin avec le nom du fichier sélectionné :
Param=jdo/mp4/2018-02-24.mp4, alors qu'on devrait avoir soit le nom du fichier seul, soit l'adresse absolue du fichier.
2 - La variable "CURRENT_URI" elle, devrait contenir le chemin de l'emplacement du fichier, sans le nom de fichier :
Valuri=file:///home/sylvain/T%C3%A9l%C3%A9chargements
Or, il n'indique que le répertoire Téléchargements, alors qu'il devrait être "/home/sylvain/Téléchargement/jdo/mp4".
Note: les caractères bizarres "%C3%A9" représentent les "é" en codification UTF-8, ce n'est pas une erreur.
Note2: Dans son script remanié, "j5012" indique rencontrer des problèmes au lancement de PyRenamer sur un répertoire dont le nom contient des caractères accentués. Il se trouve que c'est ton cas avec "Téléchargements"... Pourrais-tu faire un essai dans un autre répertoire afin de vérifier si ce point entre en ligne de compte ?

On va attendre d'avoir le contenu de Valsel pour connaître ce qu'il y a dans "SELECTED_FILE_PATHS" pour voir quelles autres surprises il nous réserve, mais je pense qu'il va falloir sérieusement retoucher le script, il ne semble pas convenir du tout pour Nemo...

Dernière modification par erresse (Le 26/02/2018, à 17:02)


Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Hors ligne

#21 Le 26/02/2018, à 20:30

Jarodd

Re : Pyrenamer: ouvrir dans le dossier courant

Bonjour,

J'ai rectifié la ligne en erreur. J'ai recliqué sur le même fichier, dans jod/mp4/. Voici les nouveaux logs :

Param=jdo/mp4/2018-02-24.mp4
Valuri=file:///home/jarodd/T%C3%A9l%C3%A9chargements
Valsel=/home/jarodd/Téléchargements/jdo/mp4/2018-02-24.mp4

Param n'est ni un nom de fichier seul, ni une adresse absolue neutral

J'ai ensuite renommé Téléchargements en Telechargements, mais ce n'est toujours pas concluant : pyrenamer m'affiche juste "logscript", c'est en effet le seul fichier dans mon /home/user/


16.04 LTS (32 bits + 64 bits)

En ligne

#22 Le 26/02/2018, à 20:58

erresse

Re : Pyrenamer: ouvrir dans le dossier courant

J'ai observé que les noms de répertoire contenant des caractères accentués ne plaisent pas au script.
Si tu vas dans Téléchargements et que tu cliques droit sans sélectionner d'objet, il lance PyRenamer sur le $HOME de l'utilisateur...
Les accents le perturbent, c'est pourquoi je te demandais de faire un essai sur un répertoire sans accents, parce-que je voulais voir ce qu'on a comme trace dans ce cas, mais je ne m'attendais pas à ce que ça résolve les autres problèmes, bien sûr.
Pour avoir les billes nécessaires à une bonne analyse, comme je ne peux pas reproduire le fonctionnement à l'identique de ton environnement, il faudrait que tu fasses 3 traces :
- une en ne sélectionnant pas d'objet (il doit ouvrir dans le répertoire courant)
- une en sélectionnant un fichier (il doit aussi ouvrir dans le répertoire courant)
- une en sélectionnant un sous-répertoire (il doit alors ouvrir dans le répertoire sélectionné)
Fais les tests sur un répertoire sans accents pour isoler ce cas de figure, puis refais un galop d'essai avec un répertoire avec accents pour comparer les réactions dans les trois cas.
Et liste-moi les fichiers de trace (logscript successifs) pour analyse.
On va bien finir par arriver à le faire fonctionner comme on le veut !


Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Hors ligne

#23 Le 26/02/2018, à 21:16

Jarodd

Re : Pyrenamer: ouvrir dans le dossier courant

Alors ces tests dans l'ordre, en n'ayant plus d'accent :

[*]sans rien sélectionner (clic dans la zone vide de /home/jarodd/Telechargements/[/*]

Param=
Valuri=file:///home/jarodd
Valsel=

pyrenamer s"ouvre le dossier courant : c'est bon

[*]en sélectionnant un fichier : je sélectionne /home/jarodd/Telechargements/jdo/mp4/2018-02-24.mp4[/*]

Param=mp4/2018-02-24.mp4
Valuri=file:///home/jarodd/Telechargements/jdo
Valsel=/home/jarodd/Telechargements/jdo/mp4/2018-02-24.mp4

pyrenamer s'ouvre dans /home/jarodd (je vois logscript) : c'est pas bon

[*]en sélectionnant un sous-répertoire : clic sur le dossier mp4[/*]

Param=jdo/mp4
Valuri=file:///home/jarodd/Telechargements
Valsel=/home/jarodd/Telechargements/jdo/mp4

pyrenamer s'ouvre dans /home/jarodd (je vois logscript) : c'est pas bon

Je n'ai pas essayé avec les accents, car habituellement je n'en ai pas, là c'était juste un reliquat de la réinstallation récente d'Ubuntu, mais je conserve Telechargements sans accent.


16.04 LTS (32 bits + 64 bits)

En ligne

#24 Le 27/02/2018, à 10:43

erresse

Re : Pyrenamer: ouvrir dans le dossier courant

J'ai bien l'impression que, dans tous les cas, nemo-scripts ne fonctionne pas correctement car :
La variable URI contient systématiquement le chemin PRÉCÉDENT le répertoire courant, ce qui n'est pas correct.
Le paramètre transmis en $1 contient une partie du chemin en plus du nom de l'objet sélectionné.
J'ai remanié le script, essaie la version ci-dessous. Si ce n'est pas OK, dé-commente les lignes de trace pour activer le log.

#!/bin/bash
#Lance l'application Pyrenamer dans le dossier courant.
#########################################################################
# NEMO "Renommer en masse" Script #
##########################################################################
#log="$HOME/logscript"
#echo "Param=$1" > $log
#echo "Valuri=${NEMO_SCRIPT_CURRENT_URI}" >> $log
#echo "Valsel=${NEMO_SCRIPT_SELECTED_FILE_PATHS}" >> $log
if [ "$1" = "" ];then
	# ouvre dans le répertoire courant (défaut)
	wdir=""
else
	filetype=$(file "${NEMO_SCRIPT_SELECTED_FILE_PATHS}")
	filetype="${filetype##*: }"
	if [ "$filetype" = "directory" ];then
		# ouvre dans le répertoire sélectionné
		wdir="${NEMO_SCRIPT_SELECTED_FILE_PATHS}"
	else
		# ouvre dans le répertoire courant (nommé)
		wdir="${NEMO_SCRIPT_SELECTED_FILE_PATHS%/*}"
	fi
fi
pyrenamer "$wdir"

Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Hors ligne

#25 Le 28/02/2018, à 20:08

Jarodd

Re : Pyrenamer: ouvrir dans le dossier courant

Bonjour,

Voilà les logs de ta dernière version :

Param=2018-02-24.mp4
Valuri=file:///home/sylvain/Telechargements/jdo/mp4
Valsel=/home/sylvain/Telechargements/jdo/mp4/2018-02-24.mp4

Clic droit sur jdo/mp4/fichier.mp4, ouverture dans /home/jarodd


16.04 LTS (32 bits + 64 bits)

En ligne