| Afficher la liste des fichiers modifiés aujourd'hui | |
|
|
Auteur | Message |
---|
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Afficher la liste des fichiers modifiés aujourd'hui Mar 17 Fév 2015 - 19:46 | |
| SUB Afficher_Liste_Fichiers_Modifies_Aujourdhui(rep$)C'est une procédure pour afficher dans une boite de message la liste des fichiers qui ont été crées ou modifiés dans la date d'aujourd'hui et ça concerne uniquement ceux du dossier rep$ (et ses sous-dossiers) transmis comme paramètre à la SUB. L'appel se fait par : Afficher_Liste_Fichiers_Modifies_Aujourdhui(rep$) rep$ est le chemin du dossier à surveiller. Si on veut surveiller tout un volume (par exemple tout le disque x:), l'appel se fera ainsi: Afficher_Liste_Fichiers_Modifies_Aujourdhui("x:") Attention : Il ne faut pas mettre le back-slash \ s'il s'agit de la racine d'un disque. La procédure s'en chargera comme une grande fille! Pour ceux qui veulent comprendre (c'est leur plein droit) comment ça marche: C'est le joli boulot de la commande : dir …\ *.* /s /o:n | find "%date%"| clip ça permet d’afficher tous les fichiers (\*.*) du répertoire en question et de ses sous-répertoires (/s) avec un ordre de tri sur le nom (/o :n) après avoir passé la liste à travers le filtre de recherche (| find) qui ne retiendra que les éléments de la liste qui contiennent la date courante (%date%) dans leurs spécifications et pour terminer, envoyer tout ce beau monde au presse-papier (| clip). Remarque : Vous pouvez spécifier l’ordre de la liste comme suit : /o:n <---- Nom (alphabétique) /o:s <---- Taille (ordre croissant) /o:e <---- Extension (alphabétique) /o:d <---- Date et heure (chronologique) /o:g <---- Répertoire /o:- <---- Préfixe en ordre indirect - Code:
-
rem ============================================================================ rem Afficher la liste des fichiers modifiés aujourd hui rem dans le dossier transmis en paramètre ainsi que dans ses sous-dossiers rem Par Papydall rem ============================================================================ hide 0 ' Adapter le chemin ... Afficher_Liste_Fichiers_Modifies_Aujourdhui("C:\Users\acer\Desktop\panoramic") ' Afficher_Liste_Fichiers_Modifies_Aujourdhui("C:\Windows\system32") ' Afficher_Liste_Fichiers_Modifies_Aujourdhui("C:") end rem ============================================================================ ' Afficher la liste des fichiers modifiés aujourd'hui dans le dossier rep$ et ' ses sous-dossiers ' Vous pouvez choisir d'afficher la liste selon un tri : ' /o:n <---- Nom (alphabétique) ' /o:s <---- Taille (ordre croissant) ' /o:e <---- Extension (alphabétique) ' /o:d <---- Date et heure (chronologique) ' /o:g <---- Répertoire ' /o:- <---- Préfixe en ordre indirect rem ============================================================================ SUB Afficher_Liste_Fichiers_Modifies_Aujourdhui(rep$) application_title "Fichiers modifiés aujourd'hui dans : " +rep$ execute_wait "cmd /c dir "+ rep$ +"\*.* /s /o:n|find "+chr$(34)+"%date%"+chr$(34)+"|clip" if clipboard_string_paste$ = "" message "Aucun fichier n'a été modifié aujourd'hui" + chr$(13)+"dans le dossier : " +rep$ else message clipboard_string_paste$ end_if END_SUB rem ============================================================================
@Ygeronim Si tu estimes que cette sub peut se loger dans Le Mag, je t'en enverrais un zip. | |
|
| |
Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Afficher la liste des fichiers modifiés aujourd'hui Mar 17 Fév 2015 - 20:51 | |
| Moi, je pense que oui avec les explications en commentaires car il y a d'autres utilisations possibles avec tes indications. | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: Re Mar 17 Fév 2015 - 21:07 | |
| Toutes les procédures qui font ce pourquoi elles sont faites ont leur place. Si elle ne sont pas utilisées tel qu' elles sont produites, elles peuvent servir de base de travail. | |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Afficher la liste des fichiers modifiés aujourd'hui Mar 17 Fév 2015 - 21:15 | |
| Intéressant en effet, mais pour ma part je sortirais l'affichage du résultat de la sub. Je viens de faire la liste des fichiers modifiés sur C:, je récolte un peu plus de 1000 lignes de résultat, la commande Message n'affiche qu'un petit début de la liste. | |
|
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Afficher la liste des fichiers modifiés aujourd'hui Mer 18 Fév 2015 - 0:36 | |
| Merci à tous. J’ai apporté une légère modification sur le code pour une meilleure utilisation de la sub. Vous aurez le choix de la sortie du résultat soit dans un message soit dans le bloc-notes. L’appel se fera ainsi : - Code:
-
Afficher_Liste_Fichiers_Modifies_Aujourdhui(rep$,output$)
Le paramètre output$ prendra les valeurs : "m" ou "M" pour une sortie dans un message "n" ou "N" pour une sortie dans le bloc-notes (notepad) - Code:
-
rem ============================================================================ rem Afficher la liste des fichiers modifiés aujourd hui rem dans le dossier transmis en paramètre ainsi que dans ses sous-dossiers rem Par Papydall rem ============================================================================ rem La sortie se fera selon le paramètre output$ soit dans un message rem soit dans le bloc-notes. rem Appel: rem Afficher_Liste_Fichiers_Modifies_Aujourdhui(rep$,output$) rem rep$ est le dossier (et ses éventuels sous-dossiers) sur lequel la sub va travailler rem output$ est le paramètre pour la sortie du résultat: rem Il prend les valeurs : rem "m" ou "M" pour une sortie dans un message rem "n" ou "N" pour une sortie dans le bloc-notes (notepad) rem ============================================================================ hide 0
' Adapter le chemin ... ' Afficher_Liste_Fichiers_Modifies_Aujourdhui("C:\Users\acer\Desktop\panoramic","m") ' Afficher_Liste_Fichiers_Modifies_Aujourdhui("C:\Windows\system32","n") Afficher_Liste_Fichiers_Modifies_Aujourdhui("C:","n") end rem ============================================================================ ' Afficher la liste des fichiers modifiés aujourd'hui dans le dossier rep$ et ' ses sous-dossiers ' Vous pouvez choisir d'afficher la liste selon un tri : ' /o:n <---- Nom (alphabétique) ' /o:s <---- Taille (ordre croissant) ' /o:e <---- Extension (alphabétique) ' /o:d <---- Date et heure (chronologique) ' /o:g <---- Répertoire ' /o:- <---- Préfixe en ordre indirect rem ============================================================================ SUB Afficher_Liste_Fichiers_Modifies_Aujourdhui(rep$,output$) dim_local out$,q$ q$ = chr$(34) if upper$(output$) = "M" out$ = "| clip" else if upper$(output$) = "N" out$ = "> liste.txt" else message "Erreur sur la paramètre output$" : exit_sub end_if end_if application_title "Fichiers modifiés aujourd'hui dans : " +rep$ execute_wait "cmd /c dir "+ rep$ +"\*.* /s /o:n|find "+q$+"%date%"+q$+out$ if upper$(output$) = "M" if clipboard_string_paste$ = "" message "Aucun fichier n'a été modifié aujourd'hui" + chr$(13)+"dans le dossier : " +rep$ else message clipboard_string_paste$ end_if else execute "cmd /c start liste.txt" end_if END_SUB rem ============================================================================
Le code est très simple et avec les explications données dans le précédent message, vous pouvez l’adapter à votre humeur !
Dernière édition par papydall le Mer 18 Fév 2015 - 0:47, édité 3 fois | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Afficher la liste des fichiers modifiés aujourd'hui Mer 18 Fév 2015 - 0:40 | |
| Super, Papydall.
Puis-je faire une suggestion ? Si, en plus de M ou N, on pouvait passer une chaîne de caractères contenant une valeur numérique entière, tu pourrais interpréter cela comme le numéro d'objet d'un LIST, DLIST, COMBO ou MEMO, et charger tout dedans l 'aide d'une série de ITEM_ADD, prédédée d'un CLEAR...
EDIT
C'est if numeric(output$)=1 qui donnera cette condition. Objet devant exister bien sûr, à tester avec if object(val(output$))=1 ... | |
|
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Afficher la liste des fichiers modifiés aujourd'hui Mer 18 Fév 2015 - 1:14 | |
| - Klaus a écrit:
- Puis-je faire une suggestion ? …
Tu es le maître et j’ai l’honneur d’être ton élève. Je trouve que c’est une excellente idée que tu suggères. J’ai enlevé le hide 0J’ai ajouté memo 10 : full_space 10Et à la fin, j’ai ajouté : item_add 10,clipboard_string_paste$Bienvenue aux autres suggestions/améliorations… Vive Panoramic ! Vive le Forum ! Vive la communauté Panoramicienne ! | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Afficher la liste des fichiers modifiés aujourd'hui Mer 18 Fév 2015 - 2:02 | |
| Tu vois, j'imaginais quelque chose comme ceci, avec "N", "M" ou str$(n%) au choix, pour la sortie: - Code:
-
rem ============================================================================ rem Afficher la liste des fichiers modifiés aujourd hui rem dans le dossier transmis en paramètre ainsi que dans ses sous-dossiers rem Par Papydall rem petit rajout par Klaus: déposer le résultat dans un objet Panoramic rem ============================================================================ rem La sortie se fera selon le paramètre output$ soit dans un message rem soit dans le bloc-notes. rem Appel: rem Afficher_Liste_Fichiers_Modifies_Aujourdhui(rep$,output$) rem rep$ est le dossier (et ses éventuels sous-dossiers) sur lequel la sub va travailler rem output$ est le paramètre pour la sortie du résultat: rem Il prend les valeurs : rem "m" ou "M" pour une sortie dans un message rem "n" ou "N" pour une sortie dans le bloc-notes (notepad) rem str$(n%) pour une sortie dans un LIST, DLIST, COMBO ou MEMO rem ============================================================================ ' hide 0
' Adapter le chemin ... ' Afficher_Liste_Fichiers_Modifies_Aujourdhui("C:\Users\acer\Desktop\panoramic","m") ' Afficher_Liste_Fichiers_Modifies_Aujourdhui("C:\Windows\system32","n") rem Afficher_Liste_Fichiers_Modifies_Aujourdhui("C:","n") memo 1 : full_space 1 : bar_both 1 Afficher_Liste_Fichiers_Modifies_Aujourdhui("C:\Users\klausgunther\Documents\Mes projets\Mes projets Delphi\KGF","1") end
rem ============================================================================ ' Afficher la liste des fichiers modifiés aujourd'hui dans le dossier rep$ et ' ses sous-dossiers ' Vous pouvez choisir d'afficher la liste selon un tri : ' /o:n <---- Nom (alphabétique) ' /o:s <---- Taille (ordre croissant) ' /o:e <---- Extension (alphabétique) ' /o:d <---- Date et heure (chronologique) ' /o:g <---- Répertoire ' /o:- <---- Préfixe en ordre indirect rem ============================================================================ SUB Afficher_Liste_Fichiers_Modifies_Aujourdhui(rep$,output$) dim_local out$,q$, objet%, s$ q$ = chr$(34) if numeric(output$)=1 objet% = val(output$) if object_exists(objet%)=0 then objet% = 0 end_if if (upper$(output$) = "M") or (objet%>0) out$ = "| clip" else if upper$(output$) = "N" out$ = "> liste.txt" else message "Erreur sur la paramètre output$" : exit_sub end_if end_if application_title "Fichiers modifiés aujourd'hui dans : " +rep$ execute_wait "cmd /c dir "+ chr$(34)+rep$ +"\*.*"+chr$(34)+" /s /o:n|find "+q$+"%date%"+q$+out$ if (upper$(output$) = "M") or (objet%>0) s$ = clipboard_string_paste$ if s$ = "" message "Aucun fichier n'a été modifié aujourd'hui" + chr$(13)+"dans le dossier : " +rep$ else if objet%>0 clear objet% item_add objet%,s$ else message s$ end_if end_if else execute "cmd /c start liste.txt" end_if END_SUB rem ============================================================================ J'ai d'ailleurs ajouté des str$(34) dans la construction de la commande DOS, pour pouvoir traiter des chemins contenant des espaces. | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 18 Fév 2015 - 2:17 | |
| @ Papydall, Doutes tu toujours de l' utilité et de l' intérêt de cette procédure ?.. Dès que tu la sens abouti, fais moi un zip et elle rejoindra ses copines sur le site. | |
|
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Afficher la liste des fichiers modifiés aujourd'hui Mer 18 Fév 2015 - 5:32 | |
| Merci Klaus pour ta contribution pratique. Voici le code légèrement retouché. - Code:
-
rem ============================================================================ rem Afficher la liste des fichiers modifiés aujourd hui rem dans le dossier transmis en paramètre ainsi que dans ses sous-dossiers rem Par Papydall rem petit rajout par Klaus: déposer le résultat dans un objet Panoramic rem ============================================================================ rem La sortie se fera selon le paramètre output$ soit dans un message rem soit dans le bloc-notes. rem soit dans un objet panoramic rem Appel: rem Afficher_Liste_Fichiers_Modifies_Aujourdhui(rep$,output$) rem rep$ est le dossier (et ses éventuels sous-dossiers) sur lequel la sub va travailler rem output$ est le paramètre pour la sortie du résultat: rem Il prend les valeurs : rem "m" ou "M" pour une sortie dans un message rem "n" ou "N" pour une sortie dans le bloc-notes (notepad) rem str$(n%) pour une sortie dans un LIST, DLIST, COMBO ou MEMO rem ============================================================================
memo 1 : full_space 1 : bar_both 1 : font_bold 1 : font_color 1,0,0,255 ' Adapter le chemin ... Afficher_Liste_Fichiers_Modifies_Aujourdhui("C:\Users\acer\Desktop\panoramic","1") ' Afficher_Liste_Fichiers_Modifies_Aujourdhui("C:\Windows\system32","m") ' Afficher_Liste_Fichiers_Modifies_Aujourdhui("C:","n") end rem ============================================================================ ' Afficher la liste des fichiers modifiés aujourd'hui dans le dossier rep$ et ' ses sous-dossiers ' Vous pouvez choisir d'afficher la liste selon un tri : ' /o:n <---- Nom (alphabétique) ' /o:s <---- Taille (ordre croissant) ' /o:e <---- Extension (alphabétique) ' /o:d <---- Date et heure (chronologique) ' /o:g <---- Répertoire ' /o:- <---- Préfixe en ordre indirect rem ============================================================================ SUB Afficher_Liste_Fichiers_Modifies_Aujourdhui(rep$,output$) dim_local out$,q$, objet%, s$ q$ = chr$(34) if numeric(output$)=1 objet% = val(output$) if object_exists(objet%)=0 then objet% = 0 end_if if (upper$(output$) = "M") or (objet%>0) out$ = "| clip" else if upper$(output$) = "N" out$ = "> liste.txt" else message "Erreur sur la paramètre output$" : exit_sub end_if end_if application_title "Fichiers modifiés aujourd'hui dans : " +rep$ execute_wait "cmd /c dir "+ q$+rep$ +"\*.*"+q$+" /s /o:d|find "+q$+"%date%"+q$+out$ if (upper$(output$) = "M") or (objet%>0) s$ = clipboard_string_paste$ if s$ = "" message "Aucun fichier n'a été modifié aujourd'hui" + chr$(13)+"dans le dossier : " +rep$ else if objet%>0 clear objet% item_add objet%, "Liste des fichiers modifiés aujourd'hui : " + date$ item_add objet%,"Dans le dossier : " + rep$ + " et ses éventuels sous-dossiers" item_add objet%,"" : item_add objet%,s$ else message s$ end_if end_if else execute "cmd /c start liste.txt" end_if END_SUB rem ============================================================================
Qui d’autre veut laisser son empreinte sur cette SUB ? | |
|
| |
Contenu sponsorisé
| Sujet: Re: Afficher la liste des fichiers modifiés aujourd'hui | |
| |
|
| |
| Afficher la liste des fichiers modifiés aujourd'hui | |
|