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