Forum Clubic

Script batch - lister contenu d'un dossier dans un fichier.txt et modifier ce fichier (ecriture/suppression)

Bonjour,

je souhaite faire une petite chose un peu particulière et je sais pas si c’est possible.
Bon je souhaite lister le contenu d’un repertoire précis et mettre le résultat dans un fichier texte.

pour ça je fais simplement un:

dir D:\....mon_rep... > monfichier.txt

et là c’est là que je veux modifier quelque chose.

le résultat qui est stocké dans monfichier .txt est :


 Le volume dans le lecteur D s'appelle Donnes
 Le num?ro de s?rie du volume est 6630-B023

 R?pertoire de D:\MailServer\store\mail\clinique-mont-louis.fr

23/06/2010  10:29    <REP>          .
23/06/2010  10:29    <REP>          ..
22/06/2010  15:57    <REP>          #public
22/06/2010  16:02    <REP>          dossier1
22/06/2010  15:53    <REP>          dossier2
               0 fichier(s)                0 octets

Or je voudrais savoir si je peux influer sur le résultat. En fait je ne veux en résultat que dossier 1, dossier 2 et virer toutes les autres infos:

Le volume dans le lecteur D s'appelle Donnes

 Le num?ro de s?rie du volume est 6630-B023

 R?pertoire de D:\MailServer\store\mail\clinique-mont-louis.fr

23/06/2010  10:29    <REP>          
23/06/2010  10:29    <REP>         
22/06/2010  15:57    <REP> 

ne vraiment garder que le nom des dossiers voulut en fait c’est à dire dossier1 dossier2 rien d’autre?

Je pense qu’il faudrait faire ensuite une ouverture, du fichier et supprimer le contenu non voulut mais je ne sais pas comment faire.

Si vous pouviez m’aider.

D’avance merci.
Edité le 24/06/2010 à 13:54

Genre dir /B ?

oh yes.

c’est ça que je voulais.
Il est vrai que j’ai pas pensé à faire un help dir :pt1cable:

Après faut maintenant que je vois si je peux rajouter quelque chose derrière.

Prendre le nom du fichier et y ajouter du texte derrière. C’est possible?

Car après avec ce fichier je dois faire un traitement.

Si je peux donner un exemple ce serait si je voulais faire des adresses mail, les dossier seraient des dossiers des boite mails ainsi je récupère les nom des dossier dans un fichier et j’y ajoute derrière @mondomaine.

C’est a titre d’exemple. juste savoir comment ecrire quelques chose après dans le fichier. via un batch.

merci.
Edité le 23/06/2010 à 20:42

Quelqu’un aurait-il une solution.

je veux tout simplement en batch pouvoir ouvrir un fichier.txt, le parcourir et pour chaque ligne présente ajouter à la suite de chaque ligne du texte.

Ex:

Fichier.txt origine:

toto
tata
tutu

fichier.txt après traitement:

toto@mondomaine
tata@mondomaine
tutu@mondomaine

d’avance merci

for /F "delims=" %%i in (monfichier.txt) do (
echo %%iTEXTE A AJOUTER>>log.txt
)

la commande echo voit sa sortie, normalement sur l’écran, redirigée vers le fichier log.txt.
algo : pour toutes les lignes du fichier monfichier.txt faire
écrire la ligne et TEXTE A AJOUTER dans le fichier log.txt en mode ajout

Le mode ajout correspond à ‘>>’.

Merci beaucoup pour cette réponse! :super:

J’ai encore une question, après c’est fini promit. :wink:

Comment supprimer une ligne dans un fichier texte via batch?
Dans mon cas une ligne qui commence par #.

J’ai trouvé ce bout de script

@echo off
for /f "delims=" %%a in ('type="fichier.txt"') do call :traitement "%%a"
goto :fin
:traitement
set ligne=%1
rem ci-dessous, definir le texte a supprimer.On peut ajouter autant de commande set...qu'il y a de texte a supprimer
set ligne=%ligne:#public=%
rem ci=dessous ne pas modifier, sert a supprimer les guillemets dans le fichier de sortie
set ligne=%ligne:"=%
rem ci-dessous definir le fichier de sortie corrigee
echo %ligne% >>fichier3.txt
:fin
pause

Mais il m’enlève bien ma ligne contenant #public
mais à la place il écrit “commande echo desactivé”

et je vois pas pourquoi il ecrit ça:etonne2:

Problème résolu :D:D:D:D:D

Je partage ma création:

Script pour lister le contenu d’un répertoire et le placer dans un fichier temporaire, ouvrir le fichier créé, ajouter du texte dans le fichier sans lire la première ligne, générer un fichier final et suppression du fichier temporaire.

@echo off
@echo Le programme va lister les utilisateurs:
pause

dir /B [i]Chemin_repertoire_a_lister[/i] > fichier.txt

@echo Operation termine
pause

@echo Le programme va affecter l'extension @clinique-mont-louis.fr
pause
rem ajouter "skip=1" pour ne pas lire la première ligne, ce qui était le problème dans mon cas.

for /f "skip=1" %%i in (fichier.txt) do (

echo %%i[i]texte_à_ajouter[/i] >> fichier_final.txt

)
del fichier.txt

@echo Operation termine - Fin du Programme
@echo off
pause

:yeux4::super:
Edité le 24/06/2010 à 13:52