PB avec boucle FOR

PB avec boucle FOR - Shell/Batch - Programmation

Marsh Posté le 18-07-2005 à 11:57:21    

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!!!

Reply

Marsh Posté le 18-07-2005 à 11:57:21   

Reply

Marsh Posté le 18-07-2005 à 15:53:45    

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!

Reply

Marsh Posté le 18-07-2005 à 21:42:33    

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.

Reply

Marsh Posté le 19-07-2005 à 08:58:42    

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!

Reply

Marsh Posté le 19-07-2005 à 19:14:59    

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.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed