Dossier téléchargement selon fichier

Résolu/Fermé
Nai Messages postés 707 Date d'inscription vendredi 29 avril 2005 Statut Membre Dernière intervention 11 octobre 2024 - Modifié par Nai le 4/12/2016 à 16:52
barnabe0057 Messages postés 14452 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 3 août 2024 - 7 janv. 2017 à 15:52
Bonjour la communauté ! :)
J'aimerais savoir s'il est possible de choisir un répertoire de téléchargement selon le type de fichier ?
J'ai installé Chrono gestionnaire de téléchargements, mais je ne parviens pas à trouver une telle option.
Je voudrais par exemple que les fichiers téléchargés ayant pour extension .ahk soient envoyés dans un dossier spécifique. Un dossier différent selon l'extension.

Est-ce possible ?

Merci d'avance pour votre aide ! :)


Bien à vous,
Naï
ps: je surveille tous mes sujets non résolus, si solution vous avez, je la lirais à coup sûr :)
A voir également:

3 réponses

barnabe0057 Messages postés 14452 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 3 août 2024 4 917
4 déc. 2016 à 16:56
Bonjour,

Non ce n'est pas possible, par contre tu peux te créer un script batch qui te servira à ranger tes fichiers.
0
Nai Messages postés 707 Date d'inscription vendredi 29 avril 2005 Statut Membre Dernière intervention 11 octobre 2024 55
4 déc. 2016 à 18:50
Merci pour ta réponse :)
Malheureusement, je ne sais pas créer de script batch.
A quoi cela pourrait ressembler ? :)
0
Nai Messages postés 707 Date d'inscription vendredi 29 avril 2005 Statut Membre Dernière intervention 11 octobre 2024 55
5 déc. 2016 à 18:41
Début de réponse trouvée ici : https://www.developpez.net/forums/d634751/general-developpement/programmation-systeme/windows/scripts-batch/batch-copie-tri-fichiers/
@Echo off
Setlocal
:: Dossier où se trouvent les sous-dossiers (ceci permet l'exécution du batch depuis n'importe quel répertoire)
cd C:\Users\user\Downloads\

:: Définition des extensions à prendre en compte
Set extension=exe
Set extension2=mp3
Set extension3=mid

:: Filtrer les types de fichiers dans les sous-dossiers
For /f "tokens=*" %%a In ('dir /s /b /a-d "*.*"') Do (
:: Contrôle du type d'extension avec déplacement dans dossier précis
If %%~xa==.%extension% move /y "%%a" C:\Users\user\Desktop\
If %%~xa==.%extension2% move /y "%%a" C:\Users\user\Music\
If %%~xa==.%extension3% move /y "%%a" C:\Users\user\Music\
)
Endlocal
:: Mettre deux :: devant le "pause" ci-dessous pour refermer automatiquement l'invite de commande après l'exécution du batch
pause

Est-ce qu'il est possible de définir plusieurs extensions par ligne, du genre :
Set extension2=mp3, mid, flac


Merci d'avance pour l'aide ^^
0
Nai Messages postés 707 Date d'inscription vendredi 29 avril 2005 Statut Membre Dernière intervention 11 octobre 2024 55
5 déc. 2016 à 18:57
Le petit soushi, c'est que si j'ai un sous-dossier d'album audio, chaque fichier est déplacer individuellement dans le dossier Musique (alors qu'il aurait été préférable de déplacer le dossier entier).
C'est possible ça ? :)
0
barnabe0057 Messages postés 14452 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 3 août 2024 4 917
Modifié par barnabe0057 le 5/12/2016 à 19:32
C'est faisable mais ça devient compliqué (pour moi), il va falloir l'aide de spécialistes du batch.

Je transfère ton sujet dans le forum approprié ;)
0
Nai Messages postés 707 Date d'inscription vendredi 29 avril 2005 Statut Membre Dernière intervention 11 octobre 2024 55
Modifié par Nai le 5/12/2016 à 19:56
J'ai modifié à ma convenance :
@Echo off
Setlocal
:: Dossier où se trouvent les sous-dossiers (ceci permet l'exécution du batch depuis n'importe quel répertoire)
cd C:\Users\user\Downloads\

:: Définition des extensions à prendre en compte
:: Extensions des programmes et executables
Set extension10=exe
Set extension11=msi

:: Extensions des fichiers audio
Set extension20=mp3
Set extension21=mid
Set extension22=flac
Set extension23=m3u

:: Extensions des fichiers vidéo
Set extension30=mkv
Set extension31=avi
Set extension32=mp4
Set extension33=mpg
Set extension34=mpeg

:: Extension des fichiers torrents
Set extension40=torrent

:: Extension des fichiers documents
:: Microsoft Office
Set extension510=doc
Set extension511=docx
Set extension512=xls
Set extension513=xlsx
Set extension514=pptx
Set extension515=xlsm
Set extension516=docm
Set extension517=ppt

:: OpenOffice
Set extension520=odt
Set extension521=ods
Set extension522=odp
Set extension523=odb
Set extension524=odg

:: Autres
Set extension530=rtf
Set extension531=txt

:: Filtrer les types de fichiers dans les sous-dossiers
For /f "tokens=*" %%a In ('dir /s /b /a-d "*.*"') Do (
:: Contrôle du type d'extension avec déplacement dans dossier précis
:: Déplacement des fichiers exécutables
If %%~xa==.%extension10% move /y "%%a" C:\Users\user\Downloads\Programmes\
If %%~xa==.%extension11% move /y "%%a" C:\Users\user\Downloads\Programmes\

:: Déplacement des fichiers audio
If %%~xa==.%extension20% move /y "%%a" C:\Users\user\Music\
If %%~xa==.%extension21% move /y "%%a" C:\Users\user\Music\
If %%~xa==.%extension22% move /y "%%a" C:\Users\user\Music\
If %%~xa==.%extension23% move /y "%%a" C:\Users\user\Music\

:: Déplacement des fichiers vidéo
If %%~xa==.%extension30% move /y "%%a" C:\Users\user\Videos\
If %%~xa==.%extension31% move /y "%%a" C:\Users\user\Videos\
If %%~xa==.%extension32% move /y "%%a" C:\Users\user\Videos\
If %%~xa==.%extension33% move /y "%%a" C:\Users\user\Videos\
If %%~xa==.%extension34% move /y "%%a" C:\Users\user\Videos\

:: Déplacement des fichiers torrents
If %%~xa==.%extension40% move /y "%%a" C:\Users\user\Downloads\Torrents\

:: Déplacement des fichiers documents
:: Fichiers Microsoft Office
If %%~xa==.%extension510% move /y "%%a" C:\Users\user\Documents\
If %%~xa==.%extension511% move /y "%%a" C:\Users\user\Documents\
If %%~xa==.%extension512% move /y "%%a" C:\Users\user\Documents\
If %%~xa==.%extension513% move /y "%%a" C:\Users\user\Documents\
If %%~xa==.%extension514% move /y "%%a" C:\Users\user\Documents\
If %%~xa==.%extension515% move /y "%%a" C:\Users\user\Documents\
If %%~xa==.%extension516% move /y "%%a" C:\Users\user\Documents\
If %%~xa==.%extension517% move /y "%%a" C:\Users\user\Documents\

:: Fichiers OpenOffice
If %%~xa==.%extension520% move /y "%%a" C:\Users\user\Documents\
If %%~xa==.%extension521% move /y "%%a" C:\Users\user\Documents\
If %%~xa==.%extension522% move /y "%%a" C:\Users\user\Documents\
If %%~xa==.%extension523% move /y "%%a" C:\Users\user\Documents\
If %%~xa==.%extension524% move /y "%%a" C:\Users\user\Documents\

:: Autres
If %%~xa==.%extension530% move /y "%%a" C:\Users\user\Documents\
If %%~xa==.%extension531% move /y "%%a" C:\Users\user\Documents\

)
Endlocal
:: Mettre deux :: devant le "pause" ci-dessous pour refermer automatiquement l'invite de commande après l'exécution du batch
:: pause

Je pense que c'est assez pour la plupart de mes besoins (et de ceux d'autres personnes). Suffisamment indenté pour être clair.

Pour les dossiers, je les déplacerais manuellement ^^

EDIT: Merci pour le transfert.
0
barnabe0057 Messages postés 14452 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 3 août 2024 4 917
5 déc. 2016 à 19:58
Pas mal du tout ;)

Je mets le script de côté, ça pourra me servir.

Je suis en train de plancher sur le problème des dossiers, je te tiens au courant.
0
Nai Messages postés 707 Date d'inscription vendredi 29 avril 2005 Statut Membre Dernière intervention 11 octobre 2024 55
5 déc. 2016 à 20:02
Merci ! ^^
Je reste en suspens.
0
barnabe0057 Messages postés 14452 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 3 août 2024 4 917
7 janv. 2017 à 15:52
Dernière et ultime version de ce script ! Il n'y en aura pas d'autres :

@Echo off
Setlocal enableextensions enabledelayedexpansion


:: on définit le dossier racine

set sourcepath=%CD%

cd %sourcepath%
if not %errorlevel%==0 goto fin


:: on protège les dossiers système

for /f "tokens=1* delims=µ" %%a in ('"tree \µµµ%sourcepath%|find ":\""') do (set "majuscule=%%b")

if !majuscule! == %SystemDrive% goto fin
if !majuscule! == %SystemDrive%\ goto fin

set str=%windir%
call set result=%%sourcepath:!str!=nasgul%%
if not !result!==!sourcepath! goto fin

set str=%ProgramData%
call set result=%%sourcepath:!str!=nasgul%%
if not !result!==!sourcepath! goto fin

set str=%ProgramFiles%
call set result=%%sourcepath:!str!=nasgul%%
if not !result!==!sourcepath! goto fin

set str="%ProgramFiles(x86)%"
call set result=%%sourcepath:!str!=nasgul%%
if not !result!==!sourcepath! goto fin


:: on définit le répertoire de destination pour chaque type de fichier

set programmespath="%USERPROFILE%\Downloads\Programmes"
if not exist %programmespath% mkdir %programmespath%

set videospath="%USERPROFILE%\Videos\"
if not exist %videospath% mkdir %videospath%

set picturespath="%USERPROFILE%\Pictures\"
if not exist %picturespath% mkdir %picturespath%

set musicpath="%USERPROFILE%\Music\"
if not exist %musicpath% mkdir %musicpath%

set documentspath="%USERPROFILE%\Documents"
if not exist %documentspath% mkdir %documentspath%

set torrentspath="%USERPROFILE%\Downloads\Torrents"
if not exist %torrentspath% mkdir %torrentspath%


:: on affiche le dossier racine

color 0A
echo.
echo *****************************************************************************
echo.
echo REPERTOIRE DE TRAVAIL = %sourcepath%
echo.
echo *****************************************************************************
echo.
echo.
echo Destination des programmes = %programmespath%
echo.
echo Destination des videos = %videospath%
echo.
echo Destination des images = %picturespath%
echo.
echo Destination des musiques = %musicpath%
echo.
echo Destination des documents = %documentspath%
echo.
echo Destination des torrents = %torrentspath%
echo.
echo.
pause
cls
color 0B
echo.


:: on traite les sous-dossiers contenant des programmes

For /f "tokens=*" %%a In ('dir /b /ad "*.*"') Do (
For /f "tokens=*" %%b In ('dir /b /a-d-s-l "%%a"') Do (
For %%i in (.exe .msi) Do (
If %%~xb==%%i move /y "%%a" %programmespath% > nul
echo Fichier = %%a\%%b
echo.
)
)
)


:: on traite les sous-dossiers contenant des images

For /f "tokens=*" %%a In ('dir /b /ad "*.*"') Do (
For /f "tokens=*" %%b In ('dir /b /a-d-s-l "%%a"') Do (
For %%i in (.jpeg .jpg .png .tiff .gif) Do (
If %%~xb==%%i move /y "%%a" %picturespath% > nul
echo Fichier = %%a\%%b
echo.
)
)
)

:: on traite les sous-dossiers contenant des vidéos

For /f "tokens=*" %%a In ('dir /b /ad "*.*"') Do (
For /f "tokens=*" %%b In ('dir /b /a-d-s-l "%%a"') Do (
For %%i in (.mkv .avi .mp4 .mpg .mpeg .mov .wmv .flv) Do (
If %%~xb==%%i move /y "%%a" %videospath% > nul
echo Fichier = %%a\%%b
echo.
)
)
)


:: on traite les sous-dossiers contenant des musiques

For /f "tokens=*" %%a In ('dir /b /ad "*.*"') Do (
For /f "tokens=*" %%b In ('dir /b /a-d-s-l "%%a"') Do (
For %%i in (.mp3 .mid .flac .m3u .wma .aac .wav .ape) Do (
If %%~xb==%%i move /y "%%a" %musicpath% > nul
echo Fichier = %%a\%%b
echo.
)
)
)


:: on traite les fichiers du dossier racine

For /f "tokens=*" %%e In ('dir /b /a-d-s-l "*.*"') Do (
For %%i in (*.doc *.docx *.xls *.xlsx *.pptx *.xlsm *.docm *.ppt *.odt *.ods *.odp *.odb *.odg *.rtf *.txt *.pdf) Do (move /y "%%i" %documentspath% > nul)
For %%i in (*.mp3 *.mid *.flac *.m3u *.wma *.aac *.wav *.ape) Do (move /y "%%i" %musicpath% > nul)
For %%i in (*.mkv *.avi *.mp4 *.mpg *.mpeg *.mov *.wmv *.flv) Do (move /y "%%i" %videospath% > nul)
For %%i in (*.jpeg *.jpg *.png *.tiff *.gif) Do (move /y "%%i" %picturespath% > nul)
For %%i in (*.exe *.msi) Do (move /y "%%i" %programmespath% > nul)
For %%i in (*.torrent) Do (move /y "%%i" %torrentspath% > nul)
echo Fichier = %%e
echo.
)

:fin
Endlocal
cls
color 0A
echo.
echo ***********************************************
echo.
echo ***** FIN DE LA SEQUENCE DE RANGEMENT *****
echo.
echo ***********************************************
echo.
echo.
pause
:eof





J'ai corrigé un problème qui se produisait lorsque les chemins des répertoires de destination contenaient un espace.
0