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
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
A voir également:
- Dossier téléchargement selon fichier
- Zone telechargement - Accueil - Outils
- Fichier rar - Guide
- Dossier appdata - Guide
- Fichier host - Guide
- Comment ouvrir un fichier epub ? - Guide
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
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.
Non ce n'est pas possible, par contre tu peux te créer un script batch qui te servira à ranger tes fichiers.
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
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/
Est-ce qu'il est possible de définir plusieurs extensions par ligne, du genre :
Merci d'avance pour l'aide ^^
@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 ^^
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
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 ? :)
C'est possible ça ? :)
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
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é ;)
Je transfère ton sujet dans le forum approprié ;)
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
Modifié par Nai le 5/12/2016 à 19:56
J'ai modifié à ma convenance :
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.
@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.
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
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.
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.
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
5 déc. 2016 à 20:02
Merci ! ^^
Je reste en suspens.
Je reste en suspens.
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
7 janv. 2017 à 15:52
Dernière et ultime version de ce script ! Il n'y en aura pas d'autres :
J'ai corrigé un problème qui se produisait lorsque les chemins des répertoires de destination contenaient un espace.
@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.
4 déc. 2016 à 18:50
Malheureusement, je ne sais pas créer de script batch.
A quoi cela pourrait ressembler ? :)