Condition .bat
Résolu/Fermé
dr4go56
Messages postés
157
Date d'inscription
mercredi 16 octobre 2013
Statut
Membre
Dernière intervention
15 juillet 2018
-
Modifié par pijaku le 17/01/2014 à 13:04
AEI vulcain Messages postés 259 Date d'inscription mardi 14 janvier 2014 Statut Membre Dernière intervention 10 juillet 2017 - 20 janv. 2014 à 19:34
AEI vulcain Messages postés 259 Date d'inscription mardi 14 janvier 2014 Statut Membre Dernière intervention 10 juillet 2017 - 20 janv. 2014 à 19:34
A voir également:
- Condition .bat
- Fichier bat - Guide
- Excel cellule couleur si condition texte - Guide
- Bat to exe converter - Télécharger - Édition & Programmation
- Condition et excel - Guide
- .Bat mac ✓ - Forum MacOS
5 réponses
AEI vulcain
Messages postés
259
Date d'inscription
mardi 14 janvier 2014
Statut
Membre
Dernière intervention
10 juillet 2017
30
17 janv. 2014 à 12:12
17 janv. 2014 à 12:12
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
AEI vulcain
Messages postés
259
Date d'inscription
mardi 14 janvier 2014
Statut
Membre
Dernière intervention
10 juillet 2017
30
Modifié par AEI vulcain le 17/01/2014 à 11:29
Modifié par AEI vulcain le 17/01/2014 à 11:29
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,
dr4go56
Messages postés
157
Date d'inscription
mercredi 16 octobre 2013
Statut
Membre
Dernière intervention
15 juillet 2018
51
17 janv. 2014 à 11:26
17 janv. 2014 à 11:26
Merci j'essaye sa de suite
dr4go56
Messages postés
157
Date d'inscription
mercredi 16 octobre 2013
Statut
Membre
Dernière intervention
15 juillet 2018
51
Modifié par dr4go56 le 17/01/2014 à 11:30
Modifié par dr4go56 le 17/01/2014 à 11:30
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
AEI vulcain
Messages postés
259
Date d'inscription
mardi 14 janvier 2014
Statut
Membre
Dernière intervention
10 juillet 2017
30
Modifié par AEI vulcain le 17/01/2014 à 15:42
Modifié par AEI vulcain le 17/01/2014 à 15:42
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
AEI vulcain
Messages postés
259
Date d'inscription
mardi 14 janvier 2014
Statut
Membre
Dernière intervention
10 juillet 2017
30
20 janv. 2014 à 00:17
20 janv. 2014 à 00:17
merci de m'informer sur le sujet
cordialement
cordialement
dr4go56
Messages postés
157
Date d'inscription
mercredi 16 octobre 2013
Statut
Membre
Dernière intervention
15 juillet 2018
51
20 janv. 2014 à 10:12
20 janv. 2014 à 10:12
Merci pour ta réponse ça à très bien fonctionné
Cordialement
Cordialement
AEI vulcain
Messages postés
259
Date d'inscription
mardi 14 janvier 2014
Statut
Membre
Dernière intervention
10 juillet 2017
30
20 janv. 2014 à 19:34
20 janv. 2014 à 19:34
Super et à bientôt
Modifié par pijaku le 17/01/2014 à 14:49
Maintenant mon problème arrive au niveau de "if" voyez vous mon erreur ?