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
» Button_picture
par pascal10000 Aujourd'hui à 11:41

» Pourquoi le compilateur stagne
par Minibug Aujourd'hui à 11:09

» 4 (en analyse): SYNEDIT_TARGET_IS_OBJECT devient inactif
par Jack Aujourd'hui à 10:09

» 3 (en analyse): Mauvaise interprétation du string "THEN"
par Jack Aujourd'hui à 10:03

» KGF.dll - demandes ou suggestions de modifications ou ajouts
par Marc Aujourd'hui à 10:00

» KGF_dll - nouvelles versions
par pascal10000 Hier à 17:27

» Mah-Jong européen new-look
par Minibug Mar 12 Déc 2017 - 22:31

» track_bar circulaire
par Klaus Mar 12 Déc 2017 - 13:54

» API Windows
par Klaus Mar 12 Déc 2017 - 3:21

» Cartes de voeux, menus, etc.
par JL35 Lun 11 Déc 2017 - 17:48

» a l'aide klaus
par Minibug Lun 11 Déc 2017 - 11:42

» bug SYNEDIT_TARGET_IS_OBJECT
par Jack Lun 11 Déc 2017 - 0:16

» Jukebox : Serge Reggiani
par papydall Sam 9 Déc 2017 - 5:58

» Ecouter la radio fm sur votre pc
par pascal10000 Sam 9 Déc 2017 - 3:42

» anomalie
par Klaus Sam 9 Déc 2017 - 3:21

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Décembre 2017
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
25262728293031
CalendrierCalendrier

Partagez | 
 

 Qui connait FORFILES ?

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

avatar

Nombre de messages : 5613
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 : 5863
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 En ligne
 
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
» MHCA, oui c'est moi... ça fait plus de 5 caractères j'arretes...
» [fermé]qui connait et utilise les lives cd anti machins
» Qui connait GeePeeEx Editor?

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