Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

lister un répertoire

1 view
Skip to first unread message

alainL

unread,
May 2, 2013, 5:13:46 AM5/2/13
to
Bonjour,
(Win XP SP3)
Je voudrais obtenir la liste des fichiers d'un répertoire, avec tous les
détails (et les tabulations) et si possible, le chemin depuis le
répertoire en cas de sous rép, afin de pouvoir copier-coller dans excel...
J'ai installé cette ligne de commande :
command.com /c tree /F /A > C:\Listing.txt
mais elle est incomplète, ne donnant que les noms des fichiers
Pour la petite histoire:
Mon dossier "Fleurs" est réparti en pas mal de sous-dossiers
"crucifères", "ombellifères" etc...
En partant de "Fleurs", je souhaiterais obtenir , pour chaque photo
/Sous-rép / nom du fichier .......... date exif de la photo
/crucifères/arabette01.jpg ............ 2013-03-15
/crucifères/cardamine05.jpg .......... 2012-03-10

Merci
--
AlainL

http://autourdalos.fr

Delta Ophiuchus

unread,
May 2, 2013, 5:56:15 AM5/2/13
to
*Bonjour/Bonsoir/Bonne nuit alainL*, qui a écrit le 02/05/2013 11:13 :

> Je voudrais obtenir la liste des fichiers d'un répertoire, avec tous les
> détails (et les tabulations) et si possible, le chemin depuis le
> répertoire en cas de sous rép, afin de pouvoir copier-coller dans excel...

J'utilise Directory Lister, en version 0.9, qui était gratuit et qui
fonctionne parfaitement sur Windows 7, avec en plus l'intégration en
menu contextuel :
http://fileforum.betanews.com/detail/Directory-Lister/1066410425/1
C'est devenu un produit pro payant :
http://www.krksoft.com/

--
http://www.synec-doc.be/doc/accents2.htm

Le premier anti-virus/anti-spyware/anti-malware, ce n'est pas un
programme, c'est toi :
http://www.certa.ssi.gouv.fr/

Jean-Claude

unread,
May 2, 2013, 12:26:49 PM5/2/13
to
Bonjour,

pour continuer sur une commande en ligne :
- ouvrir une fenêtre de commande,
- se place dans le dossier Fleurs,
- exécuter :
for /r . %i in (*.jpg) do if /i "%~xi"==".jpg" echo %~ti %i >> listing.txt

Le résultat est de la forme :
07/10/2002 20:33 D:\Donnees\Mes
videos\Photographies\goldo-wallpaper6_1024x768.jpg
30/08/1999 20:21 D:\Donnees\Mes videos\Photographies\goldorak.jpg
20/01/2003 16:00 D:\Donnees\Mes
videos\Photographies\wallpaper10_1024x768.jpg

Une fois mis sous Excel, il suffit d'utiliser Convertir pour répartir les
données en colonnes et supprimer le superflus...

Jean-Claude

Eric G

unread,
May 2, 2013, 1:29:36 PM5/2/13
to
alainL avait prétendu :
Bonjour
Pour ton cas, cherche "logiciel exif" dans gougoul.
Genre EXIFTool à http://www.sno.phy.queensu.ca/~phil/exiftool/
ou
ExifManager (trouvé à
http://www.clubic.com/lancer-le-telechargement-22267-0-exifmanager.html)

Eric Giffard


Eric G

unread,
May 2, 2013, 1:36:05 PM5/2/13
to
Eric G avait prétendu :
Je complète : XNView le fait très bien :
Avec XNView tu sélectionne les fichier, puis menu Créer -> Generer les
liste des fichiers

Cdlt

Eric Giffard


Eric G

unread,
May 2, 2013, 1:37:08 PM5/2/13
to
Eric G a pensé très fort :
Je complète : XNView le fait très bien :
Avec XNView tu sélectionne les fichiers, puis menu Créer -> Génerer la

Thierry VIGNAUD

unread,
May 2, 2013, 4:07:02 PM5/2/13
to
Sans aucun logiciel externe, en mode console (ex fenêtre DOS) voici comment
envoyer vers un fichier texte sur le disque dur le contenu des fichiers d'un
répertoire et de ses sous-répertoires :

Exemple je veux lister tout ce qui se trouve dans le répertoire c:\fichiers et
ses sous répertoire et envoyer le résultat dans le fichier liste.txt que je
vais écrire sur le disque d: dans le répertoire "resultat".

Commande à taper :
dir c:\fichiers\*.* /s >d:\resultat\liste.txt

Commentaire :
Dir : commande pour lister le contenu d'un répertoire
*.* : les classiques caractères génériques pour indique n'importe quelle
chaîne de caractère en tant que nom de fichiers et extensions, soit tous les
fichiers
/s : liste tous les sous-répertoire du répertoire indiqué
> : indique à windows d'envoyer le résulat non pas vers l'écran mais vers un
fichier dont son nom et son emplacement suivent.

(Pour les options du DIR, comme pour toutes commandes DOS, taper une espace
après le nom de la commande et /? pour obtenir les options disponibles)

Le résultat sera l'équivalent d'un bon vieux DIR lancé sous DOS depuis un
répertoire, donc l'indication du nom du fichier, de son répertoire, de sa
date, heure, taille, sauf qu'en quelques seconde il peut liste tout le contenu
d'un disque dur.

A noter que les caractères accentués ne passeront pas, en jouant avec les
fonctions remplacement de chaînes de caractères d'un traitement de texte, cela
se surmonte.

--
Thierry VIGNAUD
Emetteurs radio et TV :
http://tvignaud.pagesperso-orange.fr/

la clairière

unread,
May 2, 2013, 6:39:07 PM5/2/13
to
Bonjour,
Ainsi, dans le message <kltao5$g77$1...@speranza.aioe.org> (cf. infra) du
jeudi 02/05/2013, dixit 'alainL', on a pu lire ces recensions d'items
ibid. I. e. lato sensu :
> Bonjour,
> (Win XP SP3)
> Je voudrais obtenir la liste des fichiers d'un rᅵpertoire, avec tous
> les dᅵtails ...

As-tu regardᅵ dans le fil <Co-dnZqQfuV...@giganews.com> sur
microsoft.public.fr.windowsxp ?

--
Nathalie & Michel
les petits renardeaux dans la clairiᅵre du CTV


Delta Ophiuchus

unread,
May 3, 2013, 3:50:05 AM5/3/13
to
*Bonjour/Bonsoir/Bonne nuit Delta Ophiuchus*, qui a �crit le 02/05/2013
11:56 :

> *Bonjour/Bonsoir/Bonne nuit alainL*, qui a �crit le 02/05/2013 11:13 :
>
>> Je voudrais obtenir la liste des fichiers d'un r�pertoire, avec tous les
>> d�tails (et les tabulations) et si possible, le chemin depuis le
>> r�pertoire en cas de sous r�p, afin de pouvoir copier-coller dans excel...
>
> J'utilise Directory Lister, en version 0.9, qui �tait gratuit et qui
> fonctionne parfaitement sur Windows 7, avec en plus l'int�gration en
> menu contextuel :
> http://fileforum.betanews.com/detail/Directory-Lister/1066410425/1
> C'est devenu un produit pro payant :
> http://www.krksoft.com/

Pour r�pondre � ta question re�ue en mail, ce n'est pas possible si le
r�glage n'apparait pas dans les Options 1, ce qui est le cas.
Pour faire ce que tu veux, je te conseille l'utilisation de :
http://www.xnview.com/fr/index.php
http://www.xnview.com/fr/xnviewmp/#downloads
puis
Menu Fichier (Ctrl+B)
S�lectionne le dossier � gauche
Tabulation
Ctrl+A
Menu Cr�er\G�n�rer la liste des fichiers...
Et tu inclus la date Exif

alainL

unread,
May 3, 2013, 4:01:08 AM5/3/13
to
Merci à tous. Effectivement, XnView que je connaissais mal, offre ces
possibilités.
Bonne journée

AlainL

http://autourdalos.

Serge Nazarian

unread,
May 4, 2013, 6:15:31 AM5/4/13
to
Jean-Claude a ᅵcrit le 02/05/2013 :
> Bonjour,
>
> pour continuer sur une commande en ligne :
> - ouvrir une fenᅵtre de commande,
> - se place dans le dossier Fleurs,
> - exᅵcuter :
> for /r . %i in (*.jpg) do if /i "%~xi"==".jpg" echo %~ti %i >> listing.txt
>
> Le rᅵsultat est de la forme :
> 07/10/2002 20:33 D:\Donnees\Mes
> videos\Photographies\goldo-wallpaper6_1024x768.jpg
> 30/08/1999 20:21 D:\Donnees\Mes videos\Photographies\goldorak.jpg
> 20/01/2003 16:00 D:\Donnees\Mes videos\Photographies\wallpaper10_1024x768.jpg
>
> Une fois mis sous Excel, il suffit d'utiliser Convertir pour rᅵpartir les
> donnᅵes en colonnes et supprimer le superflus...
>
> Jean-Claude

Bonjour,

Peux-tu expliquer en dᅵtails (ou rᅵfᅵrence Web)
if /i "%~xi"==".jpg" echo %~ti %i

Merci d'avance.

--
Serge Nazarian
Pour m'ᅵcrire directement : http://cerbermail.com/?ZDkROVSJlu


Serge Nazarian

unread,
May 5, 2013, 4:10:45 AM5/5/13
to
Serge Nazarian a ᅵcrit le 04/05/2013 :
Je me rᅵponds ᅵ moi-mᅵme, pour avoir une rᅵfᅵrence dans mes archives et
aussi parce que cela peut en intᅵresser d'autres.
Origine : help FOR

******************
La commande FOR exᅵcute une commande donnᅵe pour chaque fichier d'un
ensemble de fichiers.

FOR %variable IN (ensemble) DO commande [paramᅵtres]

%variable Spᅵcifie un paramᅵtre remplaᅵable par une seule lettre.
(ensemble) Ensemble de fichiers. Caractᅵres gᅵnᅵriques autorisᅵs.
commande Commande ᅵ exᅵcuter pour chaque fichier.
paramᅵtres Liste des paramᅵtres ou des options pour la commande
spᅵcifiᅵe.

Pour utiliser la commande FOR dans un programme de commandes, spᅵcifiez
%%variable au lieu de %variable. Les noms de variables respectent la
casse, donc %i est diffᅵrent de %I.

Si les extensions de commandes sont activᅵes, les formes
supplᅵmentaires suivantes sont prises en charge pour la commande FOR :

FOR /D %variable IN (ensemble) DO commande [paramᅵtres]

Si ensemble contient des caractᅵres gᅵnᅵriques, alors la
correspondance se fait sur les noms de rᅵpertoires au lieu des noms de
fichiers.

FOR /R [[lecteur:]chemin] %variable IN (ensemble) DO commande
[paramᅵtres]

Parcourt l'arborescence de rᅵpertoires depuis la racine
[lecteur:]chemin, en exᅵcutant FOR dans chaque rᅵpertoire de
l'arborescence. Si aucun rᅵpertoire n'est spᅵcifiᅵ aprᅵs /R alors le
rᅵpertoire en cours est utilisᅵ. Si ensemble est seulement un point (.)
alors seule l'arborescence de rᅵpertoires sera ᅵnumᅵrᅵe.

FOR /L %variable IN (dᅵbut,pas,fin) DO commande [paramᅵtres]

L'ensemble est une sᅵquence de chiffres allant de dᅵbut ᅵ fin,
incrᅵmentᅵ de pas. Ainsi (1,1,5) gᅵnᅵre la sᅵquence 1 2 3 4 5 et
(5,-1,1) gᅵnᅵre la sᅵquence (5 4 3 2 1)

FOR /F ["options"] %variable IN (ensemble-fichiers) DO commande
[paramᅵtres]
FOR /F ["options"] %variable IN ("chaᅵne") DO commande [paramᅵtres]
FOR /F ["options"] %variable IN ('commande') DO commande [paramᅵtres]

ou, si l'option usebackq est utilisᅵe :

FOR /F ["options"] %variable IN (ensemble-fichiers) DO commande
[paramᅵtres]
FOR /F ["options"] %variable IN ('chaᅵne') DO commande [paramᅵtres]
FOR /F ["options"] %variable IN ((`commande`) DO commande [paramᅵtres]

ensemble-fichiers est un ou plusieurs noms de fichiers. Chaque
fichier est ouvert, lu et traitᅵ avant de passer au fichier suivant de
ensemble-fichiers. Le traitement consiste ᅵ lire dans le fichier, le
dᅵcouper en lignes individuelles de texte puis analyser chaque ligne en
zᅵro ou plusieurs jetons. Le corps de la boucle FOR est ensuite appelᅵ
avec la ou les valeurs de variables prenant la valeur de la ou des
chaᅵnes de jeton trouvᅵes. Par dᅵfaut, /F transmet le premier jeton
sᅵparᅵ par un blanc dans chaque ligne de chaque fichier. Les lignes
vides sont ignorᅵes.
Vous pouvez outrepasser le comportement d'analyse par dᅵfaut en
spᅵcifiant le paramᅵtre optionnel "options". Ceci est une chaᅵne entre
guillemets contenant un ou plusieurs mots-clᅵs spᅵcifiant diverses
options d'analyse.
Les mots-clᅵs sont :

eol=c - spᅵcifie un caractᅵre de commentaire de fin
de ligne
(un seul)
skip=n - spᅵcifie le nombre de lignes ᅵ ignorer en
dᅵbut
de fichier.
delims=xxx - spᅵcifie un ensemble de dᅵlimiteurs. Ceci
remplace
l'ensemble de dᅵlimiteurs par dᅵfaut qui sont
l'espace et la tabulation.
tokens=x,y,m-n - spᅵcifie les jetons de chaque ligne devant
ᅵtre
transmis au corps de FOR ᅵ chaque itᅵration.
Ceci provoquera l'allocation de noms de
variables
supplᅵmentaires. La forme m-n est une
ᅵtendue
spᅵcifiant les jetons allant de m ᅵ n. Si le
dernier caractᅵre de la chaᅵne tokens= est
une
astᅵrisque, alors une variable supplᅵmentaire
est
allouᅵe et reᅵoit le texte restant dans la
ligne
suivant le dernier jeton analysᅵ.
usebackq - spᅵcifie que la nouvelle sᅵmantique est en
place,
lorsqu'une chaᅵne entre guillemets inversᅵs
est
exᅵcutᅵe en tant que commande et une chaᅵne
entre
guillemets simples est une chaᅵne de commande
littᅵrale et permet l'utilisation de
guillemets
doubles pour citer des noms de fichiers.

Quelques exemples explicatifs :

FOR /F "eol=; tokens=2,3* delims=, " %i in (fichier.txt) do @echo %i %j
%k

analyse chaque ligne de monfichier.txt, en ignorant les lignes
commenᅵant par un point-virgule, en transmettant les deuxiᅵme et
troisiᅵme jetons de chaque ligne au corps de FOR, les jetons ᅵtant
dᅵlimitᅵs par des virgules et/ou espaces. Notez que le corps de FOR
rᅵfᅵrence %i pour l'obtention du deuxiᅵme jeton, %j pour l'obtention du
troisiᅵme jeton et %k pour l'obtention des jetons restants aprᅵs le
troisiᅵme. Pour les noms de fichiers contenant des espaces, placez les
noms de fichiers
entre guillemets doubles. Afin d'utiliser ainsi les guillemets
doubles, vous devez ᅵgalement utiliser l'option usebackq, faute de quoi
les guillemets doubles seraient interprᅵtᅵs comme dᅵfinissant une
chaᅵne littᅵrale ᅵ analyser.

%i est dᅵclarᅵe explicitement dans la dᅵclaration FOR et %j et %k
sont dᅵclarᅵes implicitement via l'option tokens=. Vous pouvez
spᅵcifier jusqu'ᅵ 26 jetons via la ligne tokens=, tant que cela ne
provoque pas de tentative de dᅵclaration de variable plus ᅵlevᅵe que la
lettre 'z' ou 'Z'. Souvenez-vous que les variables de FOR se composent
de lettres, tiennent compte de la casse, sont globales et que plus de
52 ne peuvent pas ᅵtre actives ᅵ la fois.

Vous pouvez aussi utiliser la logique d'analyse FOR /F sur une
chaᅵne en plaᅵant ensemble-fichiers entre guillemets entre les
parenthᅵses, en utilisant des guillemets simples. Elle sera traitᅵe
comme une ligne d'entrᅵe simple provenant d'un fichier puis analysᅵe.

Enfin, vous pouvez utiliser la commande FOR /F pour analyser la
sortie d'une commande. Faites ceci en plaᅵant des guillemets inversᅵs
autour de ensemble-fichiers entre les parenthᅵses. Elle sera traitᅵe
comme une ligne de commande transmise ᅵ un CMD.EXE enfant et la sortie
est gardᅵe en mᅵmoire et analysᅵe comme s'il s'agissait d'un fichier.
Ainsi l'exemple suivant :

FOR /F "usebackq delims==" %i IN (`ensemble`) DO @echo %i

ᅵnumᅵrerait les noms de variables d'environnement de
l'environnement en cours.

De plus, la substitution de rᅵfᅵrences de variables FOR a ᅵtᅵ
amᅵliorᅵe.
Vous pouvez maintenant utiliser la syntaxe optionnelle suivante :

%~I - ᅵtend %I en supprimant les guillemets (")
%~fI - ᅵtend %I en nom de chemin d'accᅵs reconnu
%~dI - ᅵtend %I en lettre de lecteur uniquement
%~pI - ᅵtend %I en chemin d'accᅵs uniquement
%~nI - ᅵtend %I en nom de fichier uniquement
%~xI - ᅵtend %I en extension de fichier uniquement
%~sI - chemin ᅵtendu contenant uniquement des noms courts
%~aI - ᅵtend %I en attributs du fichier
%~tI - ᅵtend %I en date/heure du fichier
%~zI - ᅵtend %I en taille du fichier
%~$PATH:I - parcourt les rᅵpertoires de la variable
d'environnement PATH et ᅵtend %I en nom du premier fichier reconnu
trouvᅵ. Si le nom de la variable d'environnement n'est pas dᅵfini ou
que le fichier n'est pas trouvᅵ par la recherche, alors ce modificateur
ᅵtend en chaᅵne vide

Vous pouvez combiner les modificateurs pour obtenir des rᅵsultats
composᅵs :

%~dpI - ᅵtend %I en lettre de lecteur et chemin d'accᅵs
uniquement
%~nxI - ᅵtend %I en nom de fichier et extension uniquement
%~fsI - ᅵtend %I en nom de chemin complet avec noms courts
uniquement
%~dp$PATH:i - parcourt les rᅵpertoires listᅵs dans la variable
d'environnement PATH ᅵ la recherche de %I et ᅵtend en lettre de lecteur
du premier trouvᅵ.
%~ftzaI - ᅵtend %I en DIR comme ligne en sortie

Dans les exemples ci-dessus %I et PATH peuvent ᅵtre remplacᅵs par
d'autres valeurs valides. La syntaxe %~ se termine par un nom de
variable FOR valide.
Le choix de noms de variables en majuscules comme %I facilite la
lecture et empᅵche toute confusion avec les modificateurs qui ne
tiennent pas compte de la casse.

Jean-Claude

unread,
May 5, 2013, 9:59:12 AM5/5/13
to
Pour rᅵpondre nᅵanmoins ᅵ la question :

for /r . %i in (*.jpg) do
pour chaque fichier JPG du dossier courant (.) et de ses sous-dossiers
(/r), faire...

if /i "%~xi"==".jpg"
si l'extension (%~xi) est bien .jpg ou .JPG (/i = insensitive-case)
alors...

echo %~ti %i
restituer la date et heure du fichier (%~ti) et le nom complet du
fichier (%i)...

>> listing.txt
et les mettre (>>) dans le fichier listing.txt


Jean-Claude

0 new messages