Affichage fichier dans répertoire - Shell/Batch - Programmation
Marsh Posté le 29-10-2013 à 09:10:33
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. 
Marsh Posté le 29-10-2013 à 10:14:57
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.
Marsh Posté le 29-10-2013 à 10:58:17
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" ) | 
Marsh Posté le 29-10-2013 à 11:29:01
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 : 
 | 
 
 
Par contre j'ai testé les deux solutions et aucune ne fonctionne malheureusement !
Marsh Posté le 28-10-2013 à 16:50:52
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 :
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.