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

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Probleme avec mon fichier batch

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Probleme avec mon fichier batch

n°1840404
DebutantFG
Posté le 20-01-2009 à 12:52:36  profilanswer
 

Voila j'essaye de faire un fichier batch, qui va chercher dans un repertoire les fichiers qui contiennent une valeur, ensuite je voudrais modifier dans chaqu'un des fichiers la valeur, puis enregistrer ce fichier sous le nom de l'ancien fichier
 
@echo off
setlocal EnableDelayedExpansion
 
for /f "tokens=*" %%z in ('type *.raw^|findstr /l "LE LUNDI 06 OCTOBRE 2008"') do (
set ligne=%%a echo !ligne:LE LUNDI 06 OCTOBRE 2008=LE MARDI 12 JANVIER 2008!)>>test.txt
 
del %%z.raw
ren test.txt %%z.raw
 
%%z etant la variable qui contient le nom du fichier
%%a etant la variable de la valeur cherchée
 
Merci pour vos éclaircissement

mood
Publicité
Posté le 20-01-2009 à 12:52:36  profilanswer
 

n°1841175
i'm_here
Tunisie
Posté le 21-01-2009 à 15:23:23  profilanswer
 

salut,
 
il y a plus simple avec l'utilitaire switch.exe

n°1841391
blastkille​r
Posté le 22-01-2009 à 01:21:14  profilanswer
 

Code :
  1. ::pour chaque fichier .raw
  2. for /f "delims=" %%a in ('dir /b *.raw') do (
  3. type "%%a" | findstr /i "le lundi 06 octobre 2008" > NUL
  4. ::s'il y a la chaine qu'on veut
  5. if errorlevel 0 for /f "delims=" %%b in ('type "%%a"') do (
  6. echo "%%b" | findstr /i "le lundi 06 octobre 2008" > NUL
  7. ::alors on ecrit tout le contenu du fichier dans un autre, et on remplace la chaine qu'on veut
  8. if errorlevel 1 (echo %%b >> "%%a.tmp" ) else (echo LE MARDI 12 JANVIER 2008 >> "%%a.tmp" )
  9. )
  10. )


Message édité par blastkiller le 22-01-2009 à 01:23:48
n°1841400
i'm_here
Tunisie
Posté le 22-01-2009 à 07:29:21  profilanswer
 

Salut,
 
 
avant tout on dit merci Blastkiller pour ton idée et ton code   :hello:  ..ça nous manque des gens compétants comme vous.  :) ...pour votre code: le seul bug c'est que la chaîne à remplacer sera traiter avec toute la ligne la contenant...(toute la ligne sera remplacée)..ton code sera parfait pour un traitement vertical des données, mais pour le traitement horizontal malheureusement ça fonctionnera avec ce bug..en esperant que vous corriger cette lacune..
 
pour ma part j'opte pour l'utilitaire switch.exe...eh oui, parfois ça simplifie la vie:

Set oldString=LE LUNDI 06 OCTOBRE 2008
Set newString=LE MARDI 12 JANVIER 2008
 
For /f "delims=" %%? In ('FindStr /M /S /C:"%oldString%" "*.txt"') do (
      Switch "%%?" "%oldString%" "%newString%"
)


Message édité par i'm_here le 22-01-2009 à 08:36:43
n°1841402
blastkille​r
Posté le 22-01-2009 à 08:00:34  profilanswer
 

Code :
  1. ::pour chaque fichier .raw
  2. for /f "delims=" %%a in ('dir /b *.raw') do call :cmd "%%a"
  3. pause
  4. exit
  5. :cmd
  6. set fichier=%~1
  7. type "%fichier%" | findstr /i "le lundi 06 octobre 2008" > NUL
  8. ::s'il y a la chaine qu'on veut dans le fichier alors on traite le fichier
  9. if errorlevel 0 for /f "delims=" %%b in ('type "%fichier%"') do call :cmd1 "%%b"
  10. goto :eof
  11. :cmd1
  12. set ligne=%~1
  13. set ligne=%ligne:LE LUNDI 06 OCTOBRE 2008=LE MARDI 12 JANVIER 2008%
  14. echo %ligne% >> %fichier%.tmp


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

  Probleme avec mon fichier batch

 

Sujets relatifs
Help me : problème de date/heure du moment en php[BATCH] Assistance amélioration
Numerotation devant un fichier.afficher une image probleme
Ouverture d'un fichier dans une application swing[Java] Problème de lecture dans un fichier
Problème avec JoomlaProbleme bisard de fichier batch au démarrage
[resolu] batch : Probleme copie fichierProbleme d'accent dans un fichier batch
Plus de sujets relatifs à : Probleme avec mon fichier batch


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