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

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  PB avec boucle FOR

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

PB avec boucle FOR

n°1152389
Sm@No
Posté le 18-07-2005 à 11:57:21  profilanswer
 

Salut:
J'ai fait un logiciel qui fait un log des fichier creer et permet de surveiller les changement dans un repertoire.
Mon pb est dans la boucle FOR qui devrait me servir a ecrire dans alors.txt les fichiers du dir creer a la date du jour dans mon dossier.
Je maitrise pas trop la boucle for si vous pouvez m'aider se serait pas mal!!!
 
@echo off
MD c:\temp
dir C:\CAWIN /tw>C:\TEMP\temp.txt
 
:RE
cls
dir C:\CAWIN /tw>C:\TEMP\temp1.txt
FC /b C:\TEMP\temp.txt C:\TEMP\temp1.txt
if %ERRORLEVEL% LEQ 0 goto RE
 
echo Le %date:~5,15% a %TIME%>C:\Docume~1\hb\Bureau\alors.txt
echo Fichier %FICHIER% Modifié>>C:\Docume~1\hb\Bureau\alors.txt
dir /OD /TC C:\CAWIN>C:\TEMP\temp2.txt
for /f "tokens=1,2,3,4 delims=" %%a in (C:\TEMP\temp2.txt) do if %%a EQU %date:~5,15% do echo %%d>>C:\Docume~1\hb\Bureau\alors.txt
:FIN
pause
 
start C:\Docume~1\hb\Bureau\alors.txt
 
La boucle FOR por favor!!!

mood
Publicité
Posté le 18-07-2005 à 11:57:21  profilanswer
 

n°1152657
Sm@No
Posté le 18-07-2005 à 15:53:45  profilanswer
 

Bon j'ai reussi la boucle mais j'arrive a avoir que la derniere ligne de mon fichier text.
Voila le batch qui marche sauf si on modifie plusieur fichier y a moyens dans raté quelques un!
 
@echo off
Mode con:lines=8 cols=42
Echo Programme pour surveiller un changement dans un fichier:
echo.
echo Entrer le chemin du fichier a surveiller:
set /P FICHIER=Par exemple C:\FICHIER! :  
MD c:\temp
:RE1
dir %FICHIER% /tw>C:\TEMP\temp.txt
 
:RE
cls
dir %FICHIER% /tw>C:\TEMP\temp1.txt
FC /b C:\TEMP\temp.txt C:\TEMP\temp1.txt
if %ERRORLEVEL% LEQ 0 goto RE
 
dir /OD /TC %FICHIER% | find "%date:~5,15%" /i > C:\TEMP\temp2.txt
echo Le %date:~5,15% a %TIME%>>C:\TEMP\alors.txt
echo Surveillance de %FICHIER% en cours:>>C:\TEMP\alors.txt
 
for /F "tokens=1,2,3,4,5 delims= " %%i in (C:\TEMP\temp2.txt) do set VERI1=%%i & set VERI2=%%j & set VERI3=%%l
echo Le %VERI1% a %VERI2% Fichier:%VERI3% >>C:\TEMP\alors.txt
start C:\TEMP\alors.txt
:FIN
goto RE1
 
Si y a des gens qui son pas partie en vacances need help!
Surtout sa doit pas etre trés dur pour un Expert du dos malgrés qu'il n'y en ait plus beaucoup car vbs a pris le dessus!

n°1153048
wackevat
Posté le 18-07-2005 à 21:42:33  profilanswer
 

Code :
  1. for /f "tokens=1-4" %%i in (C:\TEMP\temp2.txt) do (
  2.   echo Le %%i a %%j Fichier:%%l>>C:\TEMP\alors.txt
  3.   echo et si je veux exécuter une autre commande>>C:\TEMP\alors.txt
  4.   echo ....
  5. )


Sinon, mets les noms des fichiers en variable, c'est pas joli et pratique de les réécrire chaque fois.

n°1153287
Sm@No
Posté le 19-07-2005 à 08:58:42  profilanswer
 

Yes Merci j'avait essailler mais pas de chance sa marchais pas!
Un grand Merci car la ca marche NIKEL!
 
@echo off
Mode con:lines=8 cols=42
Echo Programme pour surveiller un changement dans un fichier:
echo.
echo Entrer le chemin du fichier a surveiller:
set /P FICHIER=Par exemple C:\FICHIER! :  
MD c:\temp
:RE1
dir %FICHIER% /tw>C:\TEMP\temp.txt
 
:RE
cls
dir %FICHIER% /tw>C:\TEMP\temp1.txt
FC /b C:\TEMP\temp.txt C:\TEMP\temp1.txt
if %ERRORLEVEL% LEQ 0 goto RE
 
dir /OD /TW %FICHIER% | find "%date:~5,15%" /i > C:\TEMP\temp2.txt
dir /OD /TA %FICHIER% | find "%date:~5,15%" /i >> C:\TEMP\temp2.txt
echo. >>C:\TEMP\alors.txt
echo Le %date:~5,15% a %TIME%>>C:\TEMP\alors.txt
echo Surveillance de %FICHIER% en cours:>>C:\TEMP\alors.txt
 
for /F "tokens=1,2,3,4,5 delims= " %%i in (C:\TEMP\temp2.txt) do (  
echo Le %%i a %%j Fichier:%%l>>C:\TEMP\alors.txt)
start C:\TEMP\alors.txt
:FIN
goto RE1
 
Voila:
Dit moi se que tu en pense et si y a des truc a modifier ou améliorer! LOL Y'en a toujours!
En tout cas Merci j'ai bien compris la boucle FOR!

n°1154044
wackevat
Posté le 19-07-2005 à 19:14:59  profilanswer
 

Good ! :)
 
Sinon, rien de nouveau à te proposer, si ce n'est toujours mettre des noms de fichier en variable.
 
set LOG=C:\TEMP\alors.txt
echo blabla>>%LOG%
 
comme ça tu pourras le changer plus facilement (question pratique et esthétique :D)
 
Et à la place de  
tokens=1,2,3,4,5
on peut écrire
tokens=1-5
 
Ah aussi, il y a les balises

Code :
  1. /


pour publier correctement le code (plus de problème de smileys).
 
Sinon, tu n'as pas considéré le cas où l'utilisateur entre un nom de fichier contenant des espaces.


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

  PB avec boucle FOR

 

Sujets relatifs
Optimisation d'une boucle.Boucle sur des #define
Optimisation dans une boucle ...Aide pour une boucle (niveau nul)
probleme de boucleVB Excel - Utiliser une variable pour conditionner une boucle
pb avec une boucle...pb boucle do while
Boucle tant que....pb de if dans une boucle
Plus de sujets relatifs à : PB avec boucle FOR


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