Condition .bat
Résolu
dr4go56
Messages postés
161
Date d'inscription
Statut
Membre
Dernière intervention
-
AEI vulcain Messages postés 259 Date d'inscription Statut Membre Dernière intervention -
AEI vulcain Messages postés 259 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je voux eplique mon problème j'ai fait un script (.bat) qui install un logiciel puis qui crée un raccourci dans le menu démarré pour windows 7 pas de problème mais pour windows Xp le chemin n'est pas le même je voudrais ne pas avoir à faire deux script donc j'aimerais mettre une condition dans mon script "if" sauf que je sais pas comment le placer quelqu'un pourrait m'aider ?
je vous copie mon script (celui fonctionne bien pour windows 7 ):
Comment faire pour mettre une condition pour que si le script ne reconnait pas windows 7 il le passe en tant que windows Xp ?
Cordialement, Dr4go56
Bat toi avec les meilleurs ou crève avec les autres.
Je voux eplique mon problème j'ai fait un script (.bat) qui install un logiciel puis qui crée un raccourci dans le menu démarré pour windows 7 pas de problème mais pour windows Xp le chemin n'est pas le même je voudrais ne pas avoir à faire deux script donc j'aimerais mettre une condition dans mon script "if" sauf que je sais pas comment le placer quelqu'un pourrait m'aider ?
je vous copie mon script (celui fonctionne bien pour windows 7 ):
::@echo
set source=Portable_Audacity
set destination=C:\Applications
set dest_programm=Portable_Audacity
mkdir "%destination%\%dest_programm%"
xcopy "%source%" "%destination%\%dest_programm%\"/E
copy "%source%\AudacityPortable.lnk" %Userprofile%"\AppData\Roaming\Microsoft\Windows\StartMenu\Programs\AudacityPortable.lnk"
exit
Comment faire pour mettre une condition pour que si le script ne reconnait pas windows 7 il le passe en tant que windows Xp ?
Cordialement, Dr4go56
Bat toi avec les meilleurs ou crève avec les autres.
A voir également:
- Condition .bat
- Fichier bat - Guide
- Excel cellule couleur si condition texte - Guide
- Bat to exe converter - Télécharger - Édition & Programmation
- Excel condition ou - Guide
- Condition optimale téléphone ✓ - Forum Mobile
5 réponses
Re
je regarde cet après midi mais cela me parait pas compliquer
j'ai réalisé certain batch qui possède les instructions donc je regarde cet AP
je regarde cet après midi mais cela me parait pas compliquer
j'ai réalisé certain batch qui possède les instructions donc je regarde cet AP
Bonjour,
il faut tester la version windows et ensuite faire le IF.
Teste la clé de registre, si tu ne l'a pas je regarde
cordialement,
il faut tester la version windows et ensuite faire le IF.
Teste la clé de registre, si tu ne l'a pas je regarde
cordialement,
Pour m'exprimer plus clairement si mon raccourci %Userprofile%"\AppData\Roaming éxiste sur Windows alors placer le racourci ici si il n'éxiste pas alors le placer dans C:\Documents and settings\utilisateur\Menu démarrer\Programmes
Cordialement, Dr4go56
Bat toi avec les meilleurs ou crève avec les autres.
Cordialement, Dr4go56
Bat toi avec les meilleurs ou crève avec les autres.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Re,
Utilise la fonction move
if exist "%Userprofile%"\AppData\Roaming\nom fichier" (move "%Userprofile%"\AppData\Roaming\nom fichier" "dans le nouveau répertoire") que tu place en boucle pour lire un répertoire par exemple.
mais utilise popd & pushd
le code que je te fourni te montre l'utilisation, tes variables aussi dans la déclaration.
******************* pour la clé windows si je ne me trompe pas
for /f "tokens=3,*" %%i in ('REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" ^|find "ProductId"') do (
echo Num'ro version Windows : %%i
)
*************** EXEMPLE DE BAT
ne lance pas le bat que je te laisse car chez moi j'avais fais le bat pour trier 130000 fichiers ou j'ai répertorié des clés correspondante à des signatures infectieuses, pour faire des essais, alors voilà. tu peux adapter..
**********************************************************
@echo off
cls
rem **********************************
rem petit batch creer par Vulcain
rem **********************************
title batchvulcain
@echo off
setlocal EnableExtensions
:menu
rem défini la taille de la fenêtre cmd
mode con cols=80 lines=50
color f1
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo º º
echo º MENU GENERAL º
echo º º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
rem valide les accents
MODE CON: CP SELECT=1252>nul
rem corps du menu
echo 1.Ouvrir fichier dans bloc note
echo 2.Lecture registre User des softwares
echo 3.Liste processus qui ne r'pondent pas
echo 4.V'rifier une chaine dans fichier
echo 5.Lire r'pertoire et r'pertori' dans fichier
echo 6.Supprimer le fichier rapport g'n'r' par le batch
echo 7.Imprimer le fichier Batch
echo 8.Tri fichiers/r'pertoire suivant critSre
echo 9.Quitter
echo.
color
set /p reponse="Quel programme voulez-vous ex'cuter ?"
If /i "%reponse%"=="1" goto :Openfichier
If /i "%reponse%"=="2" goto :trouvecles
If /i "%reponse%"=="3" goto :recherprocess
If /i "%reponse%"=="4" goto :VerChaineFic
If /i "%reponse%"=="5" goto :cptfictxt
If /i "%reponse%"=="6" goto :supprimrapport
If /i "%reponse%"=="7" goto :imprimrapport
If /i "%reponse%"=="8" goto :TriFicChaineRep
If /i "%reponse%"=="9" goto :fin
rem Teste la saisie si incorrecte retour Menu
if not defined reponse[%1] (
cls
goto :Menu
)
rem ============================================================================
rem *************************************************Openfichier****** 1
rem Ouvre et lit un fichier .txt
:Openfichier
cls
setlocal
set fichier=c:\RapportReg.txt
rem test si fichier existe sous c:\
if exist "%fichier%" (
for /f "delims=" %%a in ('%fichier%') do echo %%a
)
cls
Endlocal
goto :menu
rem ============================================================================
rem ***************************************************trouvecles****** 2
rem Lecture des programmes installes dans registre
:trouvecles
cls
Setlocal
rem net user Administrateur /active:no
set rapport=RapportReg.txt
set chemin="c:"
rem delele du fichier rapport
if exist "%chemin%\%rapport%" (
del "%chemin%\%rapport%"
)
rem création du fichier rapport
if not exist "%chemin%\%rapport%" (
echo rapport diagnostique > "%chemin%\%rapport%"
echo Liste des cles de registres des programmes installes >> "%chemin%\%rapport%"
echo . ......... >> "%chemin%\%rapport%"
)
rem lit la clé et ajoute à chaque execution son contenu dans le fichier
For /f "tokens=1" %%i in ('Reg Query HKEY_CURRENT_USER\Software\') do echo %%i >> "%chemin%\%rapport%"
rem net user Administrateur /active:yes
rem pause
Endlocal
goto :menu
rem ============================================================================
rem **************************************************recherprocess**** 3
rem permettant de trouver les processus qui ne répondent pas
:NonRepProcess
setlocal
cls
tasklist /fi "status eq not responding"
echo .
rem tasklist /m (pour connaitre les Dll attachés)
pause
endlocal
goto :menu
rem ============================================================================
rem ***************************************************VerChaineFic****** 4
:VerChaineFic
rem vérifie et extrait si la chaine Xaaaaa existe dans le texte
cls
setlocal
set dossier=c:\DelfXa.txt
set chaîne="Xaaaaa"
for /f "tokens=*" %%z in ('type "%dossier%"^|findstr /C:"%chaîne%"') do (
echo Nom de la chaine %%z
)
pause
endlocal
cls
goto :menu
rem ============================================================================
rem *****************************************************cptfictxt****** 5
:cptfictxt
cls
setlocal
rem compte le nombre de fichier .txt dans c:\
set count=0
set nomfichier=c:\NomFichierTxt.txt
rem place dans un fichier le nom de fichier.txt dans un fichier
dir /O/N/B c:\*.txt > %nomfichier%
rem compte le nombre de fichier txt
for /f "tokens=*" %%i in ('type "%NomFichier%"') do set /a count+=1
echo ....
echo ....... vous avez %count% fichiers txt
echo ....
rem lit le fichier
for /f "tokens=*" %%z in ('type "%NomFichier%"') do (
rem c:\%%z
echo .. %%z
)
pause
endlocal
goto :menu
rem ============================================================================
rem *************************************************supprimrapport****** 6
:supprimrapport
cls
Setlocal
set rapport=RapportReg.txt
set chemin="c:"
rem supprime le fichier rapport
if exist "%chemin%\%rapport%" (
del "%chemin%\%rapport%"
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo º º
echo º Fichier %chemin%\%rapport% supprim' º
echo º º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
)
if not exist "%chemin%\%rapport%" (
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo º º
echo º Fichier d'j... supprim' º
echo º º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
)
pause
cls
endlocal
goto :menu
rem ============================================================================
Rem ************************************imprimrapport*************** 7
:imprimrapport
setlocal
cls
set /p reponse="Voulez-vous imprimer O/N : "
echo .
echo .
If /i "%reponse%"=="O" goto :okimp
If /i "%reponse%"=="N" goto :menu
rem Teste la saisie si incorrecte retour Menu
if not defined reponse[%1] (
cls
goto :Menu
)
:okimp
set /p ficreponse="Entrer le nom du fichier "
if /i "%ficreponse%"=="" (
goto :okimp
)
set /p repertoire="Entrer le nom du r'pertoire c:\ par d'faut "
if /i "%repertoire%"=="" (
set repertoire=c:\
)
set ficimprimer=%repertoire%%ficreponse%
echo %ficimprimer%
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo º º
echo º Impression en cours .......... º
echo º º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
if exist "%ficimprimer%" (
print /D:USB002 %ficimprimer% >nul
)
pause
endlocal
goto :menu
rem ============================================================================
:TriFicChaineRep
rem *********************************************************
rem Lire repertoire, recupere fichier et si chaine dans
rem fichier = Good, copie fichier dans repertoire Bon
rem repertoire en dynamique %CD%
rem ********************************************************* 8
rem Déclaration variables
@echo off
cls
setlocal ENABLEDELAYEDEXPANSION
set count=0
set NonTransfert=0
set impostransfert=0
set $recherche="good"
set $recherche2="Douteux"
set $recherche3="infection"
set $recherche4="xxxx"
set $recherche5="(???)"
set $recherche6="Rogue"
rem répertoire ou son les fichiers à trier
set $RepLire=C:\Users\Thierry\xx\Fichiers répertoriés des infections
rem Répertoire ou son les fichiers correcte
set $CreatRepBon=C:\Users\Thierry\xx\Fichiers répertoriés des infections\bon
rem répertoire ou son les fichiers douteux
set $CreatRepDouteux=C:\Users\Thierry\xx\Fichiers répertoriés des infections\Douteux
rem répertoire ou son les fichiers mauvais
set $CreatRepMauvais=C:\Users\Thierry\xx\Fichiers répertoriés des infections\Mauvais
rem répertoire ou son les fichiers inconnu
set $CreatRepInconnu=C:\Users\Thierry\xx\Fichiers répertoriés des infections\Inconnu
pushd "%$Replire%"&md "%$CreatRepBon%"&md "%$CreatRepMauvais%"&md "%$CreatRepDouteux%"&md "%$CreatRepInconnu%"
rem Boucle lecture répertoire et appel recherche pour déplacement
echo ******************** Transfert en cours ***********************************
for %%a in (*.*) do (
call :cherche %%a
)
popd
cls
echo ******************** Transfert effectu' ***********************************
echo ******** Vous avez tranf'r' %count% fichier(s)
echo ******** Vous avez %impostransfert% fichier(s) impossible ... transf'r'(s)
echo ***************************************************************************
endlocal
pause
goto :menu
:cherche
rem Lecture et recherche de la chaine de good
find /C /I %$recherche% %1
if !errorlevel!==1 (
set /A NonTransfert+=1
)
rem teste si fichier existe, déplace fichier dans repertoire bon
if !errorlevel!==0 (
set /A count+=1
if not exist "%$CreatRepBon%\%1" (move "%$Replire%\%1" "%$CreatRepBon%\%1")
)
rem ===========================================================================
rem Lecture et recherche de la chaine de Douteux
find /C /I %$recherche2% %1
if !errorlevel!==1 (
set /A NonTransfert+=1
)
rem teste si fichier existe, déplace fichier dans repertoire Douteux
if !errorlevel!==0 (
set /A count+=1
if not exist "%$CreatRepDouteux%\%1" (move "%$Replire%\%1" "%$CreatRepDouteux%\%1")
)
rem ===========================================================================
rem Lecture et recherche de la chaine de infection
find /C /I %$recherche3% %1
if !errorlevel!==1 (
set /A NonTransfert+=1
)
echo %$CreatRepMauvais%\%1 %$Replire%\%1 %$CreatRepMauvais%\%1
pause
rem teste si fichier existe, déplace fichier dans repertoire Mauvais
if !errorlevel!==0 (
set /A count+=1
if not exist "%$CreatRepMauvais%\%1" (move "%$Replire%\%1" "%$CreatRepMauvais%\%1")
)
rem ===========================================================================
rem Lecture et recherche de la chaine de infection xxxx
find /C /I %$recherche4% %1
if !errorlevel!==1 (
set /A NonTransfert+=1
)
rem teste si fichier existe, déplace fichier dans repertoire Mauvais
if !errorlevel!==0 (
set /A count+=1
if not exist "%$CreatRepMauvais%\%1" (move "%$Replire%\%1" "%$CreatRepMauvais%\%1")
)
rem ===========================================================================
rem Lecture et recherche de la chaine de infection inconnu
find /C /I %$recherche5% %1
if !errorlevel!==1 (
set /A NonTransfert+=1
)
rem teste si fichier existe, déplace fichier dans repertoire Inconnu
if !errorlevel!==0 (
set /A count+=1
if not exist "%$CreatRepInconnu%\%1" (move "%$Replire%\%1" "%$CreatRepInconnu%\%1")
)
rem ===========================================================================
rem Lecture et recherche de la chaine (servant autre recherche) rogue
find /C /I %$recherche6% %1
if !errorlevel!==1 (
set /A NonTransfert+=1
)
rem teste si fichier existe, déplace fichier dans repertoire mauvais
if !errorlevel!==0 (
set /A count+=1
if not exist "%$CreatRepMauvais%\%1" (move "%$Replire%\%1" "%$CreatRepMauvais%\%1")
)
if NonTransfert NEQ 0 (
set /A Nontransfert=0
set /A impostransfert+=1
)
:end
rem ******************************************************* FIN 9
:fin
color
endlocal
:eof
Utilise la fonction move
if exist "%Userprofile%"\AppData\Roaming\nom fichier" (move "%Userprofile%"\AppData\Roaming\nom fichier" "dans le nouveau répertoire") que tu place en boucle pour lire un répertoire par exemple.
mais utilise popd & pushd
le code que je te fourni te montre l'utilisation, tes variables aussi dans la déclaration.
******************* pour la clé windows si je ne me trompe pas
for /f "tokens=3,*" %%i in ('REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" ^|find "ProductId"') do (
echo Num'ro version Windows : %%i
)
*************** EXEMPLE DE BAT
ne lance pas le bat que je te laisse car chez moi j'avais fais le bat pour trier 130000 fichiers ou j'ai répertorié des clés correspondante à des signatures infectieuses, pour faire des essais, alors voilà. tu peux adapter..
**********************************************************
@echo off
cls
rem **********************************
rem petit batch creer par Vulcain
rem **********************************
title batchvulcain
@echo off
setlocal EnableExtensions
:menu
rem défini la taille de la fenêtre cmd
mode con cols=80 lines=50
color f1
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo º º
echo º MENU GENERAL º
echo º º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
rem valide les accents
MODE CON: CP SELECT=1252>nul
rem corps du menu
echo 1.Ouvrir fichier dans bloc note
echo 2.Lecture registre User des softwares
echo 3.Liste processus qui ne r'pondent pas
echo 4.V'rifier une chaine dans fichier
echo 5.Lire r'pertoire et r'pertori' dans fichier
echo 6.Supprimer le fichier rapport g'n'r' par le batch
echo 7.Imprimer le fichier Batch
echo 8.Tri fichiers/r'pertoire suivant critSre
echo 9.Quitter
echo.
color
set /p reponse="Quel programme voulez-vous ex'cuter ?"
If /i "%reponse%"=="1" goto :Openfichier
If /i "%reponse%"=="2" goto :trouvecles
If /i "%reponse%"=="3" goto :recherprocess
If /i "%reponse%"=="4" goto :VerChaineFic
If /i "%reponse%"=="5" goto :cptfictxt
If /i "%reponse%"=="6" goto :supprimrapport
If /i "%reponse%"=="7" goto :imprimrapport
If /i "%reponse%"=="8" goto :TriFicChaineRep
If /i "%reponse%"=="9" goto :fin
rem Teste la saisie si incorrecte retour Menu
if not defined reponse[%1] (
cls
goto :Menu
)
rem ============================================================================
rem *************************************************Openfichier****** 1
rem Ouvre et lit un fichier .txt
:Openfichier
cls
setlocal
set fichier=c:\RapportReg.txt
rem test si fichier existe sous c:\
if exist "%fichier%" (
for /f "delims=" %%a in ('%fichier%') do echo %%a
)
cls
Endlocal
goto :menu
rem ============================================================================
rem ***************************************************trouvecles****** 2
rem Lecture des programmes installes dans registre
:trouvecles
cls
Setlocal
rem net user Administrateur /active:no
set rapport=RapportReg.txt
set chemin="c:"
rem delele du fichier rapport
if exist "%chemin%\%rapport%" (
del "%chemin%\%rapport%"
)
rem création du fichier rapport
if not exist "%chemin%\%rapport%" (
echo rapport diagnostique > "%chemin%\%rapport%"
echo Liste des cles de registres des programmes installes >> "%chemin%\%rapport%"
echo . ......... >> "%chemin%\%rapport%"
)
rem lit la clé et ajoute à chaque execution son contenu dans le fichier
For /f "tokens=1" %%i in ('Reg Query HKEY_CURRENT_USER\Software\') do echo %%i >> "%chemin%\%rapport%"
rem net user Administrateur /active:yes
rem pause
Endlocal
goto :menu
rem ============================================================================
rem **************************************************recherprocess**** 3
rem permettant de trouver les processus qui ne répondent pas
:NonRepProcess
setlocal
cls
tasklist /fi "status eq not responding"
echo .
rem tasklist /m (pour connaitre les Dll attachés)
pause
endlocal
goto :menu
rem ============================================================================
rem ***************************************************VerChaineFic****** 4
:VerChaineFic
rem vérifie et extrait si la chaine Xaaaaa existe dans le texte
cls
setlocal
set dossier=c:\DelfXa.txt
set chaîne="Xaaaaa"
for /f "tokens=*" %%z in ('type "%dossier%"^|findstr /C:"%chaîne%"') do (
echo Nom de la chaine %%z
)
pause
endlocal
cls
goto :menu
rem ============================================================================
rem *****************************************************cptfictxt****** 5
:cptfictxt
cls
setlocal
rem compte le nombre de fichier .txt dans c:\
set count=0
set nomfichier=c:\NomFichierTxt.txt
rem place dans un fichier le nom de fichier.txt dans un fichier
dir /O/N/B c:\*.txt > %nomfichier%
rem compte le nombre de fichier txt
for /f "tokens=*" %%i in ('type "%NomFichier%"') do set /a count+=1
echo ....
echo ....... vous avez %count% fichiers txt
echo ....
rem lit le fichier
for /f "tokens=*" %%z in ('type "%NomFichier%"') do (
rem c:\%%z
echo .. %%z
)
pause
endlocal
goto :menu
rem ============================================================================
rem *************************************************supprimrapport****** 6
:supprimrapport
cls
Setlocal
set rapport=RapportReg.txt
set chemin="c:"
rem supprime le fichier rapport
if exist "%chemin%\%rapport%" (
del "%chemin%\%rapport%"
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo º º
echo º Fichier %chemin%\%rapport% supprim' º
echo º º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
)
if not exist "%chemin%\%rapport%" (
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo º º
echo º Fichier d'j... supprim' º
echo º º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
)
pause
cls
endlocal
goto :menu
rem ============================================================================
Rem ************************************imprimrapport*************** 7
:imprimrapport
setlocal
cls
set /p reponse="Voulez-vous imprimer O/N : "
echo .
echo .
If /i "%reponse%"=="O" goto :okimp
If /i "%reponse%"=="N" goto :menu
rem Teste la saisie si incorrecte retour Menu
if not defined reponse[%1] (
cls
goto :Menu
)
:okimp
set /p ficreponse="Entrer le nom du fichier "
if /i "%ficreponse%"=="" (
goto :okimp
)
set /p repertoire="Entrer le nom du r'pertoire c:\ par d'faut "
if /i "%repertoire%"=="" (
set repertoire=c:\
)
set ficimprimer=%repertoire%%ficreponse%
echo %ficimprimer%
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo º º
echo º Impression en cours .......... º
echo º º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
if exist "%ficimprimer%" (
print /D:USB002 %ficimprimer% >nul
)
pause
endlocal
goto :menu
rem ============================================================================
:TriFicChaineRep
rem *********************************************************
rem Lire repertoire, recupere fichier et si chaine dans
rem fichier = Good, copie fichier dans repertoire Bon
rem repertoire en dynamique %CD%
rem ********************************************************* 8
rem Déclaration variables
@echo off
cls
setlocal ENABLEDELAYEDEXPANSION
set count=0
set NonTransfert=0
set impostransfert=0
set $recherche="good"
set $recherche2="Douteux"
set $recherche3="infection"
set $recherche4="xxxx"
set $recherche5="(???)"
set $recherche6="Rogue"
rem répertoire ou son les fichiers à trier
set $RepLire=C:\Users\Thierry\xx\Fichiers répertoriés des infections
rem Répertoire ou son les fichiers correcte
set $CreatRepBon=C:\Users\Thierry\xx\Fichiers répertoriés des infections\bon
rem répertoire ou son les fichiers douteux
set $CreatRepDouteux=C:\Users\Thierry\xx\Fichiers répertoriés des infections\Douteux
rem répertoire ou son les fichiers mauvais
set $CreatRepMauvais=C:\Users\Thierry\xx\Fichiers répertoriés des infections\Mauvais
rem répertoire ou son les fichiers inconnu
set $CreatRepInconnu=C:\Users\Thierry\xx\Fichiers répertoriés des infections\Inconnu
pushd "%$Replire%"&md "%$CreatRepBon%"&md "%$CreatRepMauvais%"&md "%$CreatRepDouteux%"&md "%$CreatRepInconnu%"
rem Boucle lecture répertoire et appel recherche pour déplacement
echo ******************** Transfert en cours ***********************************
for %%a in (*.*) do (
call :cherche %%a
)
popd
cls
echo ******************** Transfert effectu' ***********************************
echo ******** Vous avez tranf'r' %count% fichier(s)
echo ******** Vous avez %impostransfert% fichier(s) impossible ... transf'r'(s)
echo ***************************************************************************
endlocal
pause
goto :menu
:cherche
rem Lecture et recherche de la chaine de good
find /C /I %$recherche% %1
if !errorlevel!==1 (
set /A NonTransfert+=1
)
rem teste si fichier existe, déplace fichier dans repertoire bon
if !errorlevel!==0 (
set /A count+=1
if not exist "%$CreatRepBon%\%1" (move "%$Replire%\%1" "%$CreatRepBon%\%1")
)
rem ===========================================================================
rem Lecture et recherche de la chaine de Douteux
find /C /I %$recherche2% %1
if !errorlevel!==1 (
set /A NonTransfert+=1
)
rem teste si fichier existe, déplace fichier dans repertoire Douteux
if !errorlevel!==0 (
set /A count+=1
if not exist "%$CreatRepDouteux%\%1" (move "%$Replire%\%1" "%$CreatRepDouteux%\%1")
)
rem ===========================================================================
rem Lecture et recherche de la chaine de infection
find /C /I %$recherche3% %1
if !errorlevel!==1 (
set /A NonTransfert+=1
)
echo %$CreatRepMauvais%\%1 %$Replire%\%1 %$CreatRepMauvais%\%1
pause
rem teste si fichier existe, déplace fichier dans repertoire Mauvais
if !errorlevel!==0 (
set /A count+=1
if not exist "%$CreatRepMauvais%\%1" (move "%$Replire%\%1" "%$CreatRepMauvais%\%1")
)
rem ===========================================================================
rem Lecture et recherche de la chaine de infection xxxx
find /C /I %$recherche4% %1
if !errorlevel!==1 (
set /A NonTransfert+=1
)
rem teste si fichier existe, déplace fichier dans repertoire Mauvais
if !errorlevel!==0 (
set /A count+=1
if not exist "%$CreatRepMauvais%\%1" (move "%$Replire%\%1" "%$CreatRepMauvais%\%1")
)
rem ===========================================================================
rem Lecture et recherche de la chaine de infection inconnu
find /C /I %$recherche5% %1
if !errorlevel!==1 (
set /A NonTransfert+=1
)
rem teste si fichier existe, déplace fichier dans repertoire Inconnu
if !errorlevel!==0 (
set /A count+=1
if not exist "%$CreatRepInconnu%\%1" (move "%$Replire%\%1" "%$CreatRepInconnu%\%1")
)
rem ===========================================================================
rem Lecture et recherche de la chaine (servant autre recherche) rogue
find /C /I %$recherche6% %1
if !errorlevel!==1 (
set /A NonTransfert+=1
)
rem teste si fichier existe, déplace fichier dans repertoire mauvais
if !errorlevel!==0 (
set /A count+=1
if not exist "%$CreatRepMauvais%\%1" (move "%$Replire%\%1" "%$CreatRepMauvais%\%1")
)
if NonTransfert NEQ 0 (
set /A Nontransfert=0
set /A impostransfert+=1
)
:end
rem ******************************************************* FIN 9
:fin
color
endlocal
:eof
Maintenant mon problème arrive au niveau de "if" voyez vous mon erreur ?