Dossier téléchargement selon fichier

Résolu
Nai Messages postés 709 Date d'inscription   Statut Membre Dernière intervention   -  
barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   -
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 :)

3 réponses

  1. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930
     
    Bonjour,

    Non ce n'est pas possible, par contre tu peux te créer un script batch qui te servira à ranger tes fichiers.
    0
    1. Nai Messages postés 709 Date d'inscription   Statut Membre Dernière intervention   56
       
      Merci pour ta réponse :)
      Malheureusement, je ne sais pas créer de script batch.
      A quoi cela pourrait ressembler ? :)
      0
  2. Nai Messages postés 709 Date d'inscription   Statut Membre Dernière intervention   56
     
    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
    1. Nai Messages postés 709 Date d'inscription   Statut Membre Dernière intervention   56
       
      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
    2. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930
       
      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
    3. Nai Messages postés 709 Date d'inscription   Statut Membre Dernière intervention   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
    4. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930
       
      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
    5. Nai Messages postés 709 Date d'inscription   Statut Membre Dernière intervention   56
       
      Merci ! ^^
      Je reste en suspens.
      0
  3. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930
     
    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