[BATCH] Problème programme de recherche

[Résolu/Fermé]
Signaler
-
 LUDO -
Bonjour mes gins :)


J'ai crée un programme de recherche (recherche de MP3 sur le disque dur).

Il marche impec.


Enfin, c'est ce que je pensais ^^



Mon problème, je vais vous l'expliquer en plusieurs points


1 ==> Disons que j'ai deux mp3 : love song.mp3 et Docteur Love.mp3
2 ==> Si j'utilise mon programme, que je recherche love ==> il ne trouve que Docteur Love.mp3 ===> mais pas de love song.mp3
3 ==> Bizarre n'est-ce pas. Donc j'ai utilisé le logiciel Agent Ransack pour rechercher tous les mp3 que j'ai sur le disque dur C => 31 mp3

Avec mon programme => 7/8 mp3


Bref, je pense qu'il manque un caractère.... j'en ai testé plusieurs, en vain.



Bien entendu, voici le code de mon prog :

@echo off  
title TomSearch : Programme de recherche MS-DOS  
color 0E  

:debut  
cls  
echo.  
echo          ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»  
echo          º Bienvenue sur MP3Search, la recherche de fichiers MP3 sous DOS º  
echo          º               DerniSre mise ... jour : 28/07/11                  º  
echo          ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ  
echo.  
echo Auteur du programme : little boy62  
echo O-- me contacter : tomcena_18@live.fr  
echo.  
echo.  
echo Appuyez sur une touche pour lancer le programme  
pause>nul  
goto menu  
   
:menu  
cls  
If exist "%homedrive%\MP3Search.txt" del /Q "%homedrive%\MP3Search.txt"  
echo          ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»  
echo          º 1 Introduction                                         º   
echo          º 2 Recherche de MP3                                     º  
echo          º 3 Quitter                                              º  
echo          ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ  
echo.  
set /p choix=Quelle action effectuer ?   
if %choix%==1 goto debut  
if %choix%==2 goto recherche  
if %choix%==3 goto exit  
goto Error  

:recherche  
cls  
echo Programme de recherche lanc'...  
echo.  
set /p A=Veuillez indiquer ce que vous recherchez   
echo.  
set /p  L=Veuillez marquer la lettre du p'riph'rique  pour effectuer la recherche (exemple : C)   
cls  
for /f "tokens=*" %%b in ('dir /A /B /S "%L%:\*.*" ^|findstr -I "%A%.mp3"^') do if exist "%%~b" (  
echo %%~b >> "%homedrive%\MP3Search.txt")  
echo.  
If exist "%homedrive%\MP3Search.txt" (  
echo Un rapport, intitul' MP3Search.txt, doit ^tre cr'e, dans la racine du disque dur  
echo Appuyez sur une touche pour l'ouvrir  
pause>nul  
start notepad "%homedrive%\MP3Search.txt"  
) ELSE (echo D'sol', la recherche n'a rien donn')  
echo.  
echo.  
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»  
echo º Recherche termin' ! º  
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ  
echo.  
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»  
echo º 1 Retour au menu       º  
echo º 2 Quitter le programme º  
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ  
echo.  
set /p choix= Veuillez indiquer votre choix :   
if %choix%==1 goto menu  
if %choix%==2 goto exit  

:Error  
echo.  
Echo Cette action n'existe pas. Veuillez appuyer sur une touche pour recommencer  
pause>nul  
goto menu   

:exit  
exit




Pouvez-vous m'aider s'il vous plait.


Merci pour vous réponses futures


@bientôt




I feel good

1 réponse

salut,

oui c'est bizarre...
essaye à la place de
findstr -I "%A%.mp3"
de mettre
findstr -I "*%A%*.mp3"

ou alors essaye avec la commande find au lien de findstr
ou meme sinon a la place de ta commande for pourquoi tu ne fais pas ça:

DIR /A /B /S "%L%:\*%A%.mp3 >"%homedrive%\MP3Search.txt"

cela ne serait-il pas suffisant
Utilisateur anonyme
Lu'

Déjà essayé, cela ne marche pas.


Merci pour tes réponses
re,

avec ceci cela foncionne correctement pour moi!!!

@echo off
title TomSearch : Programme de recherche MS-DOS
color 0E

:debut
cls
echo.
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo º Bienvenue sur MP3Search, la recherche de fichiers MP3 sous DOS º
echo º DerniSre mise ... jour : 28/07/11 º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
echo Auteur du programme : little boy62
echo.
echo.
echo Appuyez sur une touche pour lancer le programme
pause>nul
goto menu

:menu
cls
If exist "%homedrive%\MP3Search.txt" del /Q "%homedrive%\MP3Search.txt"
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo º 1 Introduction º
echo º 2 Recherche de MP3 º
echo º 3 Quitter º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
set /p choix=Quelle action effectuer ?
if %choix%==1 goto debut
if %choix%==2 goto recherche
if %choix%==3 goto exit
goto Error

:recherche
cls
echo Programme de recherche lanc'...
echo.
set /p A=Veuillez indiquer ce que vous recherchez
echo.
set /p L=Veuillez marquer la lettre du p'riph'rique pour effectuer la recherche (exemple : C)
cls
dir /A /B /S "%L%:\*%A%*.mp3" > "%homedrive%\MP3Search.txt" 2>&1
echo.
If exist "%homedrive%\MP3Search.txt" (
echo Un rapport, intitul' MP3Search.txt, doit ^tre cr'e, dans la racine du disque dur
echo Appuyez sur une touche pour l'ouvrir
pause>nul
start notepad "%homedrive%\MP3Search.txt"
) ELSE (echo D'sol', la recherche n'a rien donn')
echo.
echo.
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo º Recherche termin' ! º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo º 1 Retour au menu º
echo º 2 Quitter le programme º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
set /p choix= Veuillez indiquer votre choix :
if %choix%==1 goto menu
if %choix%==2 goto exit

:Error
echo.
Echo Cette action n'existe pas. Veuillez appuyer sur une touche pour recommencer
pause>nul
goto menu

:exit
exit
Utilisateur anonyme
Salut Ludo


Effectivement, cela fonctionne.


Mais la commande findstr doit aussi fonctionner...


Je te remercie :)


@+
oui tu as raison cela devrait marcher avec findstr mais je n'ai pas creusé pour ma part assez profond pour voir pourquoi cela ne fonctionne pas...