Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1873 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Affichage fichier dans répertoire

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Affichage fichier dans répertoire

n°2208454
coolkis
Posté le 28-10-2013 à 16:50:52  profilanswer
 

Bonjour,
 
Dans une ligne de commande d'un de mes scripts, j'aimerai lister des fichiers de plusieurs répertoires et sous répertoires.
 
Voici le code en question :
 

Citation :


for /f "tokens=1-3,5,* delims=/s " %%a in ('dir /a-d /s %chemin%\%dossier%^|find "/"') do (echo %%e)


 
La ligne de commande fonctionne très bien ! Par contre dès que le répertoire est vide, il y a "fichier introuvable" d'inscrit à l'écran, ce qui est très gênant.
 
Est-ce que quelqu'un aurait une idée svp pour éviter cela ?
 
Merci d'avance.

mood
Publicité
Posté le 28-10-2013 à 16:50:52  profilanswer
 

n°2208499
olivthill
Posté le 29-10-2013 à 09:10:33  profilanswer
 

Il manque le contexte.
 
Néanmoins, j'ai testé :

dir /s

Cela ramène la liste des répertoires et des fichiers, avec des lignes récapitulatives.
 

dir /s|find "/"

Cela ramène la liste des répertoires et des fichiers.
 

dir /s |find "/"|findstr /V "<REP>"

Cela ramène la liste des fichiers.
L'option /V de findstr permet de trouver tout sauf les lignes contenant la chaine qui est indiquée.

n°2208509
coolkis
Posté le 29-10-2013 à 10:14:57  profilanswer
 

Merci pour ta réponse olivthill.
 
Le contexte, c'est lister l'ensemble des fichiers de plusieurs répertoires et sous répertoires pour ensuite les supprimer par rapport à une date donnée.
 
Le tout est transcrit dans une log. Ce qui m'ennuie, c'est que lorsque le script tombe sur une répertoire vide, la commande renvoie "Fichier introuvable".  
 
Sachant qu'il y a des milliers de répertoires, ça pourrit les logs.

n°2208517
olivthill
Posté le 29-10-2013 à 10:58:17  profilanswer
 

Je n'arrive pas à tester parce que ta commande me renvoie "%%a était inattendu."
 
Par ailleurs, quand je fais un dir /s, je ne vois jamais de message "fichier introuvable".
 
Mais, je suis à peu près certain que l'ajout de findstr /V "quelquechose" résoudra le problème.
Je ferais :

for /f "tokens=1-3,5,* delims=/s " %%a in ('dir /a-d /s %chemin%\%dossier%^|find "/"|findstr /V "<REP>"|findstr /V "fichier introuvable"') do (echo %%e)

ou

for /f "tokens=1-3,5,* delims=/s " %%a in ('dir /a-d /s %chemin%\%dossier%^|find "/"|findstr /V "<REP>"') do (echo %%e|findstr /V "fichier introuvable" )


Message édité par olivthill le 29-10-2013 à 11:02:59
n°2208529
coolkis
Posté le 29-10-2013 à 11:29:01  profilanswer
 

Si tu teste directement sous une fenêtre DOS, c'est normal, il faut que mette qu'un "%" au la place des deux "%%" dans un .bat ou .cmd.
 
Par contre il y a une petite erreur dans ta commande au niveau des find :
 

Code :
  1. for /f "tokens=1-3,5,* delims=/ " %%a in ('dir /a-d /s %chemin%\%dossier%^|find "/"^|findstr /V "<REP>"^|findstr /V "fichier introuvable"') do (echo %%e)


 
Par contre j'ai testé les deux solutions et aucune ne fonctionne malheureusement !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Affichage fichier dans répertoire

 

Sujets relatifs
Affichage WHILE Structure Polynome( probleme d'affichage) en C
[Choix Techno] modification de fichier supprission des lignes redondantes dans un fichier
changer la résolution d'affichageproblème affichage sur afficheur lcd
Upload fichier avec choix dossier destinationExtraire les donnees d'un fichier mdf
[C] Comment sauvegarder lors d'un remplissage de fichier?vérifier si un fichier a été modifié
Plus de sujets relatifs à : Affichage fichier dans répertoire


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR