#1 Le 30/08/2009, à 09: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
J'ai don essayé dans un terminal :
zenity --calendar --day="27" --month="01" --year="2009"
Il m'affiche un joli calendrier, c'est OK.
mais si je fais ceci :
zenity --calendar --day="30" --month="08" --year="2009"
J'ai cette réponse :
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, à 06:57)
Hors ligne
#2 Le 30/08/2009, à 10: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, à 10: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, à 12:51
- oobuntu
Re : [Résolu][nautilus-script] Changer la date (bizzarrerie de zenity)
Ben voilà le script (qui fonctionne
#!/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, à 12:53)
Hors ligne
#5 Le 08/09/2009, à 16:00
- soupaloignon
Re : [Résolu][nautilus-script] Changer la date (bizzarrerie de zenity)
Merci pour le script
==> Libérez les huitres du bassin d'Arcachon <==
Hors ligne
#6 Le 08/09/2009, à 19: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, à 19:14)
Hors ligne
#7 Le 09/09/2009, à 06: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, à 15: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, à 16: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, à 17:59)
Hors ligne
#10 Le 25/08/2012, à 17: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, à 17:53)
Nomade en camion utilisant Ubuntu. Si vous souhaitez suivre mes voyages : http://toutenkamion.net/
Hors ligne
#11 Le 25/08/2012, à 17:58
- pingouinux
Re : [Résolu][nautilus-script] Changer la date (bizzarrerie de zenity)
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