Contenu | Rechercher | Menus

Annonce

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 30/08/2009, à 10:32

oobuntu

[Résolu][nautilus-script] Changer la date (bizzarrerie de zenity)

J'aimerais réaliser un petit nautilus-script pour modifier la date de fichier(s).
Je récupère la date, j'extrais l'année, le mois, le jour et j'envoie le tout à zenity --calendar.
Et ça ne marche pas à tous les coups yikes
J'ai don essayé dans un terminal :

zenity --calendar --day="27" --month="01" --year="2009"

Il m'affiche un joli calendrier, c'est OK. smile
mais si je fais ceci :

zenity --calendar --day="30" --month="08" --year="2009"

J'ai cette réponse : sad

Cette option n'est pas disponible. Veuillez consulter --help pour toutes les utilisations possibles.

Autant que j'ai essayé avec ou sans les guillemets, c'est pareil !
Si quelqu'un y comprend quelque chose !?

Dernière modification par oobuntu (Le 09/09/2009, à 07:57)

Hors ligne

#2 Le 30/08/2009, à 11:01

noska

Re : [Résolu][nautilus-script] Changer la date (bizzarrerie de zenity)

bug bizarre mais ça marche en remplaçant 08 par 8

Hors ligne

#3 Le 30/08/2009, à 11:16

oobuntu

Re : [Résolu][nautilus-script] Changer la date (bizzarrerie de zenity)

J'avais pas essayé !

Bon je vais essayer de changer mon script dans ce sens et je le mettrai ici (ou à un endroit plus approprié ?) dès qu'il sera OK.

Hors ligne

#4 Le 30/08/2009, à 13:51

oobuntu

Re : [Résolu][nautilus-script] Changer la date (bizzarrerie de zenity)

Ben voilà le script (qui fonctionne smile

#!/bin/bash
# Change-date - 30-08-2009
printf %s "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" |
while read -r FICHIER
do	if [ -f "$FICHIER" -a ! -L "$FICHIER" ] # Pas pour les dossiers ni les liens symboliques
	then	FD_DATE=$( date -r "$FICHIER" +%F )
		FD_TIME=$( date -r "$FICHIER" +%R )
		for FORME in Y m d	# pour extraire les différentes valeurs de la date
		do	let FD_$FORME=$( date -r "$FICHIER" +%-$FORME )
		done
# CHANGEMENT D'HEURE.
		while true
		do	if NEW_TIME=$( zenity --entry --title="Changer l'heure" --text="$FICHIER
Annuler passe au fichier suivant
Valider permet de modifier la date" --entry-text="$FD_TIME" 2>/dev/null )
			then if date -d $NEW_TIME >/dev/null	# teste la validité de l'heure
				then NEW_TIME=${NEW_TIME:0:2}${NEW_TIME:3} # supprime le ':' dans l'heure
					break # Passe au changement de date
				else continue
				fi
			else	continue 2 # On assume que si on change pas l'heure, on ne change pas la date non plus
			fi
		done
# CHANGEMENT DE DATE
		NEW_DATE=$( zenity --calendar --title="Modifier la date" --text="$FICHIER
Date:$FD_DATE" --day="$FD_d" --month="$FD_m" --year="$FD_Y" --date-format="%Y%m%d" 2>/dev/null )
		if [ -n "$NEW_DATE" ]
		then touch -t $NEW_DATE$NEW_TIME "$FICHIER"
		fi
	fi
done

Dernière modification par oobuntu (Le 30/08/2009, à 13:53)

Hors ligne

#5 Le 08/09/2009, à 17:00

soupaloignon

Re : [Résolu][nautilus-script] Changer la date (bizzarrerie de zenity)

Merci pour le script smile


==> Libérez les huitres du bassin d'Arcachon <==

Hors ligne

#6 Le 08/09/2009, à 20:10

Marabout

Re : [Résolu][nautilus-script] Changer la date (bizzarrerie de zenity)

Salut,

Au cas où ça intéresserait quelqu'un je pense avoir compris pourquoi la commande :

zenity --calendar --day="30" --month="08" --year="2009"

ne fonctionne pas.
Il semblerait qu'il soit possible d'écrire les dates en décimal, en octal ou en hexadécimal. Par exemple pour le 10 octobre 2009 on peut écrire (avec le jour en octal, le mois en décimal et l'année en hexa):

zenity --calendar --day="036" --month="10" --year="0x7D9"

Comme on peut le voir dans l'exemple précédent pour spécifier qu'un nombre est exprimé en octal il faut le faire précéder de "0". C'est pourquoi l'emploi de "08" n'est pas correct, 8 n'existant pas en octal.

Voili, voilou.

Dernière modification par Marabout (Le 08/09/2009, à 20:14)

Hors ligne

#7 Le 09/09/2009, à 07:57

oobuntu

Re : [Résolu][nautilus-script] Changer la date (bizzarrerie de zenity)

Mais c'est ... bien sûr !!

Voilà qui boucle le sujet. Je mets "résolu".

Merci

Hors ligne

#8 Le 25/08/2012, à 16:44

percherie

Re : [Résolu][nautilus-script] Changer la date (bizzarrerie de zenity)

Dommage il manque la gestion de l'horaire AVEC les secondes. J'ai fait quelques tentative de modification du script mais ça ne fonctionne pas. Je ne suis pas très bon coté syntaxe.


Nomade en camion utilisant Ubuntu. Si vous souhaitez suivre mes voyages : http://toutenkamion.net/

Hors ligne

#9 Le 25/08/2012, à 17:59

pingouinux

Re : [Résolu][nautilus-script] Changer la date (bizzarrerie de zenity)

Bonjour percherie,

Dommage il manque la gestion de l'horaire AVEC les secondes.

Ceci devrait convenir. Je n'ai modifié que les ligne 7 et 17.

#!/bin/bash
# Change-date - 30-08-2009
printf %s "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" |
while read -r FICHIER
do	if [ -f "$FICHIER" -a ! -L "$FICHIER" ] # Pas pour les dossiers ni les liens symboliques
	then	FD_DATE=$( date -r "$FICHIER" +%F )
		FD_TIME=$( date -r "$FICHIER" +%T )
		for FORME in Y m d	# pour extraire les différentes valeurs de la date
		do	let FD_$FORME=$( date -r "$FICHIER" +%-$FORME )
		done
# CHANGEMENT D'HEURE.
		while true
		do	if NEW_TIME=$( zenity --entry --title="Changer l'heure" --text="$FICHIER
Annuler passe au fichier suivant
Valider permet de modifier la date" --entry-text="$FD_TIME" 2>/dev/null )
			then if date -d $NEW_TIME >/dev/null	# teste la validité de l'heure
				then NEW_TIME=${NEW_TIME:0:2}${NEW_TIME:3:2}.${NEW_TIME:6} # HH:MM:SS => HHMM.SS
					break # Passe au changement de date
				else continue
				fi
			else	continue 2 # On assume que si on change pas l'heure, on ne change pas la date non plus
			fi
		done
# CHANGEMENT DE DATE
		NEW_DATE=$( zenity --calendar --title="Modifier la date" --text="$FICHIER
Date:$FD_DATE" --day="$FD_d" --month="$FD_m" --year="$FD_Y" --date-format="%Y%m%d" 2>/dev/null )
		if [ -n "$NEW_DATE" ]
		then touch -t $NEW_DATE$NEW_TIME "$FICHIER"
		fi
	fi
done

Modifié : Simplification ligne 7

Dernière modification par pingouinux (Le 25/08/2012, à 18:59)

Hors ligne

#10 Le 25/08/2012, à 18:53

percherie

Re : [Résolu][nautilus-script] Changer la date (bizzarrerie de zenity)

Cool, je n'ai pas testé mais je n'arrivai pas à m'en sortir sur le codage sur la ligne 17 mais à voir le code cela va fonctionner.

Par contre pour la ligne 7, je peut te proposer

FD_TIME=$( date -r "$FICHIER" +%T )

Si c'est correct, peut être peut tu le placer dans ton message.

Dernière modification par percherie (Le 25/08/2012, à 18:53)


Nomade en camion utilisant Ubuntu. Si vous souhaitez suivre mes voyages : http://toutenkamion.net/

Hors ligne

#11 Le 25/08/2012, à 18:58

pingouinux

Re : [Résolu][nautilus-script] Changer la date (bizzarrerie de zenity)

percherie #10 a écrit :

Par contre pour la ligne 7, je peut te proposer

FD_TIME=$( date -r "$FICHIER" +%T )

Exact ! Je corrige tout de suite, ce sera plus joli…

Hors ligne