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
» Problème de compilateur.
par Pedro Alvarez Hier à 20:01

» COMPILATEUR V 0.9 beta 8 du 18 aout 2017
par Pedro Alvarez Hier à 19:54

» Pb 17 (en analyse): ITEM_SELECT ne fonctionne pas
par Jack Jeu 17 Aoû 2017 - 19:26

» Compilateur FBPano
par Mike Jeu 17 Aoû 2017 - 13:52

» un nouveau editeur panobasic
par Jean Claude Jeu 17 Aoû 2017 - 10:18

» Le compilateur.
par Pedro Alvarez Jeu 17 Aoû 2017 - 8:36

» Pb 16 (en analyse): ON_CLOSE plante à l'exécution
par Jack Mer 16 Aoû 2017 - 20:00

» Pb 15 (en analyse): TIMER_ON plante à l'exécution
par Jack Mer 16 Aoû 2017 - 19:58

» KGF_dll - nouvelles versions
par Yannick Dim 13 Aoû 2017 - 17:35

» probleme d'outil
par Yannick Dim 13 Aoû 2017 - 17:32

» Carte de France des régions
par Yannick Sam 12 Aoû 2017 - 21:33

» Pb 14 (en analyse): PRINT_LOCATE plante à l'exécution
par Jack Ven 11 Aoû 2017 - 22:37

» Petit avertissement [Mots réservés]
par papydall Ven 11 Aoû 2017 - 13:45

» Distances sur plan
par JL35 Jeu 10 Aoû 2017 - 21:29

» Tracé : Triangle, Carrée, Dents de scie, Sinusoïde redressée
par papydall Jeu 10 Aoû 2017 - 14:52

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Août 2017
LunMarMerJeuVenSamDim
 123456
78910111213
14151617181920
21222324252627
28293031   
CalendrierCalendrier

Partagez | 
 

 Qui connait FORFILES ?

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

avatar

Nombre de messages : 5508
Age : 67
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 : 5849
Age : 45
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: