boucle for - Shell/Batch - Programmation
Marsh Posté le 09-05-2005 à 21:55:48
voila un batch pour faire de la recherche et qqe travaux sur des fichiers  
tu le copie dans un fichier.bat puis tu fais des éssais  
assister par l'aide windows 
 
et charge powerbatch de astase.com le tuto qui va avec est sympa 
 
bonne chance 
********************************************* 
@echo off 
 
title findex v2.00  
 
 
 
 
 
if /i "%1"=="/l" goto autolis 
if /i "%1"=="/c" goto autocop 
if /i "%1"=="/d" goto autodel 
if /i "%1"=="/?" goto helpauto 
if /i "%1"=="/help" goto helpauto 
if /i "%1"=="help" goto helpauto 
cls 
  ep
ep 
 
echo que voulez vous faire 
echo --------------------- 
:re 
echo 0- exit 
echo 1- copier 
echo 2- lister 
echo 3- copier et lister 
echo 4- supprimer 
echo 5- lister et supprimer 
echo 6- informations 
echo --------------------- 
set /p choix=tapez votre choix: 
if %choix%==0 goto fin 
if %choix%==1 goto suite 
if %choix%==2 goto suite 
if %choix%==3 goto suite 
if %choix%==4 goto suite 
if %choix%==5 goto suite 
if %choix%==6 goto help 
 
cls 
echo erreur de selection 
pause 
cls 
goto re 
 
:suite 
 
if %choix%==1 set fonc=xcopy 
if %choix%==4 set fonc=del /s /q 
if %choix%==5 set fonc=del /s /q 
 
cls 
 
echo (exemple: *.xxx *.yyy etc...) 
set /p ext=saissisez les extensions voulues:  
 
 
cls 
 
set /p chem=tapez le chemin de recherche: 
cls 
 
if %choix%==4 goto scop 
 
set /p sortie=tapez le chemin du resultat: 
cls 
 
if %choix%==2 goto list 
if %choix%==5 goto list 
 
:scop 
 
 
for /r %chem% %%f in (%ext%) do %fonc% %%f %sortie%  
 
cls 
 
 
if %choix%==3 goto list2 
if /i "%1"=="/c" goto fin 
if /i "%1"=="/d" goto fin 
 
echo operation terminee 
 
pause 
 
exit 
 
:list 
 
set /p nom=saisissez le nom du fichier: 
 
:list2 
 
if %choix%==3 set nom=listing 
 
chdir /d %chem% 
 
dir /b /s %ext% > %sortie%\%nom%.txt 
 
cls 
if "%"1=="/l" goto fin 
if %choix%==5 goto scop 
 
:aa 
set /p open=operation terminee.ouvrir le fichier?(Y/N): 
if /i %open%==y start %sortie%\%nom%.txt 
if /i %open%==n goto fin 
if /i %open%==y goto fin 
cls 
goto aa 
 
 
 
:fin 
 
exit /b 
 
:autocop 
 
set fonc=xcopy 
set chem=%2 
set sortie=%3 
set ext=%4 
 
goto scop 
 
:autodel 
 
set fonc=del /s /q 
set chem=%2 
set ext=%3 
set sortie= 
 
goto scop 
 
:autolis 
 
set chem=%2 
set ext=%4 
set sortie=%3 
set nom=%5 
 
goto list2 
 
 
:help 
cls 
 
goto hsaut 
 
:helpauto 
set choix=0 
 
:hsaut 
 
echo ce soft est prevu pour travailler sur des fichiers via leurs 
echo extensions.il faut donc saisir *.xxx et bien respecter un espace 
echo lors de la saisie de la 2ieme extension. 
echo il est possible d'utiliser le soft en ligne de commande: 
echo findex /c /d /l sachant que l'on ne peux pas combiner ces 3 parametres. 
echo -  /c pour copier: findex /C [chemin_source] [chemin_cible] [extensions] 
echo -  /d pour supprimer: findex /d [chemin_cible] [extensions] 
echo -  /l pour lister: findex /l [chemin_source] [chemin_cible] [extensions] [nom_fichier] 
echo           pour cette option, ne pas specifier d extension  (.txt par defaut) 
echo ce soft est prevu pour W2K et plus -findex-V 2.00- 
 
if /i "%1"=="/?" goto end 
if /i "%1"=="/help" goto end 
if /i "%1"=="help" goto end 
 
 
pause 
cls 
goto dep 
 
:end 
******************************************************
Marsh Posté le 13-05-2005 à 13:18:13
un grand merci je vais déja faire des exercices et comprendre ton script ^^ merci de m'avoir répondu ^^
Marsh Posté le 16-05-2005 à 12:25:28
comment faire une recherche de fichier pour récupérer uniquement ceux dont la dernière modif date de 24h ?
Marsh Posté le 17-05-2005 à 00:16:02
suis fatigué la. 
 
je vais voir, si une idée me vient, d'ici demain. 
Marsh Posté le 17-05-2005 à 01:14:23
Pour récupérer l'estampille : 
dir /t:w <fichier> 
 
mais pour savoir qu'il est daté de moins de 24h, c'est beaucoup moins évident en batch : 
http://forum.hardware.fr/forum2.ph [...] post=69032
Marsh Posté le 09-05-2005 à 09:51:59
bonjour à tous, voila, je goncle encore assez mal les boucles for...
quelqu'un pourrait un peu m'exclaircir sur ça? par exemple les delims, token, j'ai assez dur avec ça... J'ai regarder un peu l'aide de windows mais ça va toujours pas. Pourriez-vous m'expliquer un peu et me faire 1 ou 2 exemple? Merci d'avance