Code Bat pour regrouper des fichiers épars sur un DD
Posté : 13 mai 2018 11:53
Bonjour à tous et à toutes....
Un petit code qui sert à regrouper les fichiers éparpillés sur un DD.
C'est aussi un condensé de quelques commandes sauf les boucles et surtout FOR que j'ai du mal à comprendre.
Sur mon PC il fonctionne très bien mais si un expert veut bien le contrôler cela serait bien.
Quoi qu'il en soit, avoir un avis compétent me fera plaisir.
Toute critique me fera avancer.
**************Début du code************************
echo off & setlocal enabledelayedexpansion enableextensions
Title REGROUPEMENT de FICHIERS
Color 0A
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo º REGROUPEMENT de FICHIERS º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Echo "Bonjour cher %username%"
Echo.
echo Nous sommes le : %date% et il est : %time%
@echo off
:menu
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo º MENU º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
echo 1.Regroupement de fichiers
echo 2.Quitter LE Programme
:Debut
echo.
set /p reponse="Que voulez-vous faire ? "
If /i "%reponse%"=="1" goto :batch1
If /i "%reponse%"=="2" goto :batch2
IF "%reponse%" =="" goto :menu echo Vous n'avez rien rentre Recommencez :
ECHO. VOUS AVEZ CHOISI LE PROGRAMME NUMERO %reponse%
ECHO Je me mets tout de suite au travail ......
REM ------------------------------------------------
:batch1
echo.Vous avez choisi de regrouper des fichiers
echo.
echo Ce batch permet de regrouper dans un seul dossier de votre choix
echo les fichiers ayant une meme extension eparpilles sur un disque dur.
echo.
echo echo Pour que le Batch Fonctionne il faut que ce bat soit
echo echo enregistre a la racine du C:\.
echo echo Ainsi que Xcopy.exe qui doit se touver a la racine de chaques disques dur.
echo %CD%
echo.
echo.
set /P A=Sur quel lecteur voulez vous faire la recherche, SVP C, D, E ou autre :
echo Vous avez tapé %A%
IF "%A%" =="" goto :Debut echo Vous n'avez rien rentre Recommencez :
echo.
echo.
Set lect=%A%:
:Debut1
set /P Ext=Quel type de fichiers "bat; txt; etc etc, SVP" :
IF "%Ext%" =="" goto :Debut1 Vous n'avez rien rentre Recommencez :
echo.
echo.
echo Vous avez tapé %Ext% ?
set fichs=*.%Ext%
echo %fichs%
:Debut2
set /P MonLec=Sur quel lecteur voulez vous enregistrer votre dossier C, autre :
Echo Vous avez tape %Monlec%
IF "%Monlec%" =="" goto Debut2 Vous n'avez rien rentre Recommencez :
set REP=%Monlec%:\
echo.
echo.
:Debut3
set /P Monfich=Dans quel Dossier voulez vous enregistrer vos fichiers :
echo Vous avez tapé %Monfich%
IF "%Monfich%" =="" goto :Debut3 Vous n'avez rien rentre Recommencez :
set Mondossier=%REP%%Monfich%
echo %Mondossier%
echo.
echo.
echo Copie des fichiers sur %lect% %fichs% qui seront enregistres dans %Mondossier%
echo %lect%
pause
%lect%
For /R %lect% %%I in ("%fichs%") do xcopy /f/y "%%I" %Mondossier%
echo.
Endlocal
:batch2
echo **************************************
echo *** QUITTER ***
echo **************************************
echo Voulez-vous quitter le programme ? Y or N
SET /P REPONSE2=Reponse :
IF '%REPONSE2%' == '' GOTO fin
IF %REPONSE2% == y GOTO fin
IF %REPONSE2% == Y GOTO fin
IF %REPONSE2% == n GOTO menu & cls
IF %REPONSE2% == N GOTO menu & cls
:fin
Echo.
echo.
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo º Francis Genele º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Exit
Merci pour vos réponses
Cordialement
Genele
Un petit code qui sert à regrouper les fichiers éparpillés sur un DD.
C'est aussi un condensé de quelques commandes sauf les boucles et surtout FOR que j'ai du mal à comprendre.
Sur mon PC il fonctionne très bien mais si un expert veut bien le contrôler cela serait bien.
Quoi qu'il en soit, avoir un avis compétent me fera plaisir.
Toute critique me fera avancer.
**************Début du code************************
echo off & setlocal enabledelayedexpansion enableextensions
Title REGROUPEMENT de FICHIERS
Color 0A
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo º REGROUPEMENT de FICHIERS º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Echo "Bonjour cher %username%"
Echo.
echo Nous sommes le : %date% et il est : %time%
@echo off
:menu
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo º MENU º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
echo 1.Regroupement de fichiers
echo 2.Quitter LE Programme
:Debut
echo.
set /p reponse="Que voulez-vous faire ? "
If /i "%reponse%"=="1" goto :batch1
If /i "%reponse%"=="2" goto :batch2
IF "%reponse%" =="" goto :menu echo Vous n'avez rien rentre Recommencez :
ECHO. VOUS AVEZ CHOISI LE PROGRAMME NUMERO %reponse%
ECHO Je me mets tout de suite au travail ......
REM ------------------------------------------------
:batch1
echo.Vous avez choisi de regrouper des fichiers
echo.
echo Ce batch permet de regrouper dans un seul dossier de votre choix
echo les fichiers ayant une meme extension eparpilles sur un disque dur.
echo.
echo echo Pour que le Batch Fonctionne il faut que ce bat soit
echo echo enregistre a la racine du C:\.
echo echo Ainsi que Xcopy.exe qui doit se touver a la racine de chaques disques dur.
echo %CD%
echo.
echo.
set /P A=Sur quel lecteur voulez vous faire la recherche, SVP C, D, E ou autre :
echo Vous avez tapé %A%
IF "%A%" =="" goto :Debut echo Vous n'avez rien rentre Recommencez :
echo.
echo.
Set lect=%A%:
:Debut1
set /P Ext=Quel type de fichiers "bat; txt; etc etc, SVP" :
IF "%Ext%" =="" goto :Debut1 Vous n'avez rien rentre Recommencez :
echo.
echo.
echo Vous avez tapé %Ext% ?
set fichs=*.%Ext%
echo %fichs%
:Debut2
set /P MonLec=Sur quel lecteur voulez vous enregistrer votre dossier C, autre :
Echo Vous avez tape %Monlec%
IF "%Monlec%" =="" goto Debut2 Vous n'avez rien rentre Recommencez :
set REP=%Monlec%:\
echo.
echo.
:Debut3
set /P Monfich=Dans quel Dossier voulez vous enregistrer vos fichiers :
echo Vous avez tapé %Monfich%
IF "%Monfich%" =="" goto :Debut3 Vous n'avez rien rentre Recommencez :
set Mondossier=%REP%%Monfich%
echo %Mondossier%
echo.
echo.
echo Copie des fichiers sur %lect% %fichs% qui seront enregistres dans %Mondossier%
echo %lect%
pause
%lect%
For /R %lect% %%I in ("%fichs%") do xcopy /f/y "%%I" %Mondossier%
echo.
Endlocal
:batch2
echo **************************************
echo *** QUITTER ***
echo **************************************
echo Voulez-vous quitter le programme ? Y or N
SET /P REPONSE2=Reponse :
IF '%REPONSE2%' == '' GOTO fin
IF %REPONSE2% == y GOTO fin
IF %REPONSE2% == Y GOTO fin
IF %REPONSE2% == n GOTO menu & cls
IF %REPONSE2% == N GOTO menu & cls
:fin
Echo.
echo.
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo º Francis Genele º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Exit
Merci pour vos réponses
Cordialement
Genele