FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Mac OS X sierra
par Irikte Aujourd'hui à 11:38

» Concours de Morpions
par Froggy One Aujourd'hui à 10:29

» Synedit Parameters
par Jean Claude Aujourd'hui à 10:08

» Bienvenue à Irikte
par UltraVox Aujourd'hui à 10:04

» Recherche de traductions de mots (@Klaus).
par Klaus Aujourd'hui à 9:44

» Version instantanée V 0.9.28i10 du 24/06/2017
par Yannick Hier à 22:52

» Panoramic et ses curiosités
par Jack Hier à 8:15

» Utilitaire de suppression de fichiers
par Yannick Ven 23 Juin 2017 - 23:03

» Code à vérifier SVP (Oups ! résolu)
par Jean Claude Jeu 22 Juin 2017 - 21:16

» Compilateur FBPano
par jean_debord Jeu 22 Juin 2017 - 9:56

» Bienvenue à Virtualalan !
par UltraVox Jeu 22 Juin 2017 - 9:18

» ShortName$(F) [Cloturé]
par papydall Mer 21 Juin 2017 - 16:19

» Remplacer espace par tiret dans noms des dossiers / fichiers
par papydall Mer 21 Juin 2017 - 15:27

» Menu personalisé avec icones et menu contextuel
par Laurent (Minibug) Mer 21 Juin 2017 - 12:44

» La liste des choses à faire ...
par Jack Mar 20 Juin 2017 - 22:49

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Juin 2017
LunMarMerJeuVenSamDim
   1234
567891011
12131415161718
19202122232425
2627282930  
CalendrierCalendrier

Partagez | 
 

 Qui connait FORFILES ?

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
papydall

avatar

Nombre de messages : 5385
Age : 66
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Qui connait FORFILES ?   Sam 21 Mar 2015 - 19:56

Connaissez-vous FORFILES ?
Oui, non, pas assez ?
Personnellement je la connais superficiellement pour avoir joué avec  elle il y a bien des années.
Je vous dis dès le début : elle est FORMIDABLE !  Et l’essayer c’est l’adopter.

Avez-vous deviné de quoi je parle ?

Je parle d’une commande native dans Vista, W7 et W8.
Cette commande sert à sélectionner et exécuter une certaine tâche sur un fichier ou un ensemble de fichiers.
Elle rend de beaux services quand on l’utilise pour le traitement par lots.
Le code suivant donne la syntaxe de cette commande et propose quelques exemples de son utilisation et c'est à vous d'en imaginer d'autres.

Code:

rem ============================================================================
rem              Exemples pour utiliser la commande ForFiles
rem                       Par Papydall
rem ============================================================================
rem FORFILES est une commande native dans Vista, W7, W8
rem Elle sert à sélectionner et exécuter une commande sur un fichier ou un
rem ensemble de fichiers.
rem Cette commande est utile pour le traitement par lots.
rem ============================================================================
' Syntaxe de la commande FORFILES:
rem forfiles [/p <Path>] [/m <SearchMask>] [/s] [/ c "<Command>"] [/d [{+ |-}] [{<Date> | <Days>}]]

rem /p <Path>  :' Spécifie le chemin d'accès à partir duquel commencer la recherche.
'              Par défaut, la recherche commence dans le répertoire de travail actuel.

rem /m <SearchMask> : ' Recherche des fichiers en fonction du masque de recherche spécifié.
'                       Le masque de recherche par défaut est *.*

rem /s   : ' Indique à la commande forfiles de rechercher dans les sous-répertoires
'            de manière récursive.

rem /c "<Command>" : ' Exécute la commande spécifiée sur chaque fichier.
'                    Les chaînes de commande doivent être placés entre guillemets.
'                    La commande par défaut est "cmd /c echo @file".

rem /d [{+ |-}] [{<Date> | <Days>}]  : ' Sélectionne les fichiers avec une date
' de dernière modification dans le délai spécifié.
' Sélectionne les fichiers avec une date de dernière modification postérieure ou égale à (+)
' ou antérieure ou égale (-) à la date spécifiée, dont la Date est au format MM/JJ/AAAA.
' Sélectionne des fichiers avec une date de dernière modification postérieure ou égale à (+)
' la date du jour plus le nombre de jours spécifié, ou antérieure ou égale à (-)
' la date actuelle moins le nombre de jours spécifié.
' Les valeurs valides pour les jours incluent n'importe quel nombre dans la plage 0 à 32768 (89 années).
' Si aucun signe n'est spécifié, + est utilisé par défaut.
rem ============================================================================
' Forfiles est plus couramment utilisé dans les fichiers batch.
' Forfiles /s est similaire à dir /s.
' Vous pouvez utiliser les variables suivantes dans la chaîne de commande tel
' que spécifié par l'option de ligne de commande /c .
rem @FILE   : ' Nom de fichier.
rem @FNAME  : ' Nom de fichier sans extension.
rem @EXT    : ' Extension de nom de fichier.
rem @PATH   : ' Chemin d'accès complet du fichier.
rem @RELPATH: ' Chemin d'accès relatif du fichier.
rem @ISDIR  : ' Retourne la valeur TRUE si un type de fichier est un répertoire.
              ' Sinon, FALSE.
rem @FSIZE  : ' Taille du fichier, en octets.
rem @FDATE  : ' Date de dernière modification du fichier.
rem @FTIME  : ' Heure de dernière modification du fichier.
rem  ===========================================================================
' Pour inclure un caractère spécial dans la commande,on utilise le code hexa
' au format : 0xHH
' Exemples:
' 0x09  : une tabulation
' 0x22  : double quote "
' "c:\ Program Files" devient ^0x22c:\Program^ Files\ ^0x22
rem ============================================================================
rem ============================================================================
rem ============================================================================
dim commande$,rep$,titre$,q$ ,s$
full_space 0
q$ = chr$(34)
rep$ = "c:\users\acer\desktop\panoramic" : ' ou  rep$ = dir_current$ : ' Répertoire de travail à modifier selon votre cas
memo 1 : bar_both 1 : font_bold 1 : font_color 1,0,0,255
top 1,50 : left 1,100 : width 1,width(0)-200 : height 1,height(0)-200
font_bold 0 : font_size 0,16
alpha 2 : top 2,height(1)+50 : left 2,200
caption 2, "!!! Veuillez patienter .... Le traitement peut être long !!!"
alpha 3 : top 3,10 : left 3,100

rem ============================================================================
' Voici quelques exemples pour utiliser la commande FORFILES
' Pour chaque exemple, supprimer les apostrophes (rem) avant commandes et avant titre$
rem ============================================================================
rem Pour répertorier tous les fichiers texte du dossier en cours et des ses sous-dossiers
 commande$ = "forfiles /p "+rep$+" /s /m *.txt /c "+q$+"cmd /c echo @path 0x09 0x09 est un fichier texte"+q$
 titre$ = "Liste de tous les fichiers TXT du dossier «"+rep$ +"» et des ses sous-dossiers"
rem ============================================================================

rem ============================================================================
rem Pour répertorier tous les dossiers du répertoire en cours
' commande$ = "forfiles /p "+rep$+" /m * /c "+q$+"cmd /c if @isdir == TRUE echo @file est un dossier"+q$
' titre$ = "Liste de tous les dossiers du dossier «"+rep$+"»"
rem ============================================================================

rem ============================================================================
rem Pour répertorier tous les fichiers qui ont au moins un an dans le répertoire en cours
' commande$ = "forfiles /p "+rep$+"  /m *.* /d -365 /c "+q$+"cmd /c echo @file a au moins un an."+q$
' titre$ = "Liste de tous les fichiers qui ont au moins un an dans le répertoire : «"+rep$+"»"
rem ============================================================================

rem ============================================================================
rem Pour afficher le texte "est obsolète" pour chacun des fichiers dans le
rem répertoire en cours et ses sous-répertoires qui sont plus anciens que le 1er janvier 2010
' commande$ = "forfiles /p "+rep$+" /s /m *.* /d -01/01/2010 /c "+q$+"cmd /c echo @path  est obsolète."+q$
' titre$ = "Liste de tous les fichiers du répertoire en cours et ses sous-répertoires qui sont plus anciens que le 1er janvier 2010"
rem ============================================================================

rem ============================================================================
rem Pour répertorier les extensions de nom de fichier de tous les fichiers dans le
rem répertoire courant au format de colonne et ajouter une tabulation avant l'extension
' commande$ = "forfiles  /m *.* /c "+q$+"cmd /c echo l'extension de @file 0x09est 0x09@ext"+q$
' titre$ = "Extensions de tous les fichiers du répertoires en cours"
rem ============================================================================

rem ============================================================================
rem Pour supprimer le fichier TestFich.txt si il est vieux de 5 jours ou plus
rem forfiles /m TestFich.txt /c "cmd /c Del TestFich.txt " /d -5
' commande$ = "forfiles /m TestFich.txt /c "+q$+"cmd /c Del Testfich.txt "+q$+" /d -5"
' titre$ = "Suppression du fichier TestFich.txt s'il existe et s'il est vieux de 5 jours ou plus"
rem ============================================================================

rem ============================================================================
rem Pour trouver tous les fichiers .jpg modifiés depuis 30 jours ou plus et ajouter
rem une tabulation avant le texte modifié depuis...
' commande$ = "forfiles /p "+rep$+" /s /m *.jpg /C "+q$+"cmd /c echo @path 0x09modifié depuis 30 jours (ou plus)"+q$+" /D -30"
' titre$ = "Liste de tous les fichiers .jpg du répertoire : «"+rep$+ "» et de ses sous-répertoires modifiés de puis 30 jours ou plus"
rem ============================================================================

rem ============================================================================
rem Pour lister le nom et la taille de tous les fichiers .doc du répertoire
rem courant et de ses sous-répertoires éventuels en ajoutant une tabulation
rem entre le nom et la taille du fichier
' commande$ = "FORFILES /S /M *.doc /C "+q$+"cmd /c echo @file 0x09 @fsize"+q$
' titre$ = "Lister le nom et la taille de tous les fichiers .doc en ajoutant une tabulation entre le nom et la taille du fichier"
rem ============================================================================

caption 3, titre$
Exec_ForFile(commande$,titre$)
caption 2,""

end
rem ============================================================================
SUB Exec_ForFile(commande$,titre$)
    execute_wait "cmd /c" + commande$ + " | clip"
    s$ = clipboard_string_paste$
    if s$ = "" then s$ = "Aucun fichier ne satisfait à la demande"
    item_add 1,titre$ : item_add 1,s$

END_SUB
rem ============================================================================
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jicehel

avatar

Nombre de messages : 5838
Age : 44
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Qui connait FORFILES ?   Sam 21 Mar 2015 - 21:54

Puissant
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
 
Qui connait FORFILES ?
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Qui connait FORFILES ?
» Qui connait et qu'en pensez-vous svp ?? TunUp Utilities 2009
» Supprimer un forum quand on ne connait que l'e-mail?
» MHCA, oui c'est moi... ça fait plus de 5 caractères j'arretes...
» [fermé]qui connait et utilise les lives cd anti machins

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC 32 bits :: Vos sources, vos utilitaires à partager-
Sauter vers: