PB avec boucle FOR - Shell/Batch - Programmation
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!
Marsh Posté le 18-07-2005 à 21:42:33
Code :
|
Sinon, mets les noms des fichiers en variable, c'est pas joli et pratique de les réécrire chaque fois.
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!
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 )
Et à la place de
tokens=1,2,3,4,5
on peut écrire
tokens=1-5
Ah aussi, il y a les balises
Code :
|
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.
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!!!