IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Décompresser automatiquement des fichiers après leur téléchargement


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2022
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2022
    Messages : 22
    Par défaut Décompresser automatiquement des fichiers après leur téléchargement
    Bonjour.

    J'essaye de décompresser automatiquement des fichiers .zip, et j'aimerais que le dézippage ait lieu automatiquement après le téléchargement.
    Donc il faut que mon fichier .bat s'exécute automatiquement après le téléchargement.

    Voici la méthode que j'ai suivie :

    1) J'ai placé l'adresse de 7-ZIP dans mon PATH ("modifier les variables d'environnement")

    2) J'ai écrit le fichier batch suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    7z x -oC:\Users\mon_nom\Desktop\Dossier_Actuel\* C:\Users\mon_nom\Desktop\Dossier_Actuel\*.zip
    J'ai donc suivi la syntaxe que j'ai trouvée sur le net, avec d'abord l'emplacement du téléchargement et ensuite l'emplacement d'extraction.
    "Dossier_Actuel" est le dossier dans lequel je veux retrouver le fichier une fois qu'il a été décompressé.
    Après plusieurs essais infructueux, j'ai décidé de changer dans Chrome les paramètres de téléchargement et de directement télécharger les fichiers .zip dans "Dossier_Actuel", c'est pour ça que les emplacements de téléchargement et d'extraction sont les mêmes ici.

    Ensuite, j'ai enregistré le fichier bloc-notes en .bat et j'ai choisi "Tous les fichiers" lors de l'enregistrement et non pas "fichiers txt".

    3) J'ai téléchargé Directory Monitor.
    J'ai choisi le dossier. (Je ne savais pas s'il fallait choisir celui de téléchargement ou celui d'extraction. J'ai donc mis le même dossier pour les deux, comme dit plus haut. De toutes façons, auparavant quand je téléchargeais dans "Downloads" et que je choisissais "Dossier_Actuel" pour l'extraction, que je mette l'un ou l'autre dans Directory Monitor, rien ne marchait...)
    J'ai fait clic droit et edit.
    J'ai coché "New files" dans le menu Main.
    Dans le menu Execute, j'ai sélectionné mon fichier .bat rédigé auparavant.
    Et j'ai rajouté quelques secondes de délais afin que tout ça ne se lance qu'une fois le fichier totalement téléchargé.
    Je sauve bien tout puis je vais dans File, Options et dans Include Patterns, j'écris ".zip".


    Puis je télécharge mon fichier et rien ne marche.
    Le fichier .zip se télécharge dans Dossier_Actuel et voilà.
    Aucun fichier dézippé, je ne sais pas ce qui se passe, je ne sais pas si l'erreur vient du PATH, ou de l'écriture du fichier batch, ou encore de mon paramétrage de Directory Monitor.

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET en devenir
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 549
    Par défaut
    Bonjour,

    1) Ou bien tu peux utiliser 7za au lieu de 7z. Il s'agit de 7-zip mais en version autonome, sans dépendances ni interface graphique, donc plus adapté pour une utilisation dans un script :

    https://www.7-zip.org/download.html

    Il faut choisir la version standalone, normalement c'est le 6ème lien en partant du haut.

    2) Ton script n'est pas optimal car tu ne crées pas de dossier pour chaque fichier .zip, donc tout va se retrouver mélangé dans le même dossier de destination.
    Voilà ce que j'aurais fait :
    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    @echo off
     
    set "source=%USERPROFILE%\Downloads"
    set "destination=%USERPROFILE%\Desktop\Dossier_Actuel"
     
    for %%A in (%source%\*.zip) do (
    	if not exist "%destination%\%%~nA" (mkdir "%destination%\%%~nA")
    	7z x -y -o"%destination%\%%~nA" "%source%\%%~nxA"
    )
     
    exit

    3) Dans Include Patterns il ne faut pas écrire .zip il faut écrire *.zip
    Moi je rajouterais dans Exclude Patterns l'extension *.part pour éviter plusieurs déclenchements alors qu'il s'agit d'un seul et unique fichier.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2022
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2022
    Messages : 22
    Par défaut
    Bonjour et merci de votre réponse.

    J'ai appliqué ce que vous avez dit et malheureusement ça ne fonctionne pas.
    J'ai utilisé 7za, dont j'ai placé l'adresse dans le PATH. Je ne sais pas si je dois mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\Users\mon_nom\Downloads
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\Users\nmon_nom\Downloads\7za
    .
    J'ai essayé les deux et ça ne fonctionne pas, que je mette l'un ou l'autre.

    Ensuite, j'ai copié le script batch que vous avez écrit.

    Et enfin dans Directory Monitor, j'ai remplacé .zip par *.zip et en cliquant sur le répertoire que j'ai choisi puis en allant dans le menu Execute, j'ai choisi le nouveau script batch.

    Et puis je télécharge un fichier zip et rien n'apparaît dans le dossier "Dossier_Actuel".
    Dans le champ "Directory", je ne sais pas si je dois indiquer le répertoire de téléchargement ou le répertoire d'extraction.

    Cordialement.

  4. #4
    Membre émérite
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET en devenir
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 549
    Par défaut
    Dans le champ Directory il faut indiquer le répertoire à surveiller donc le répertoire de téléchargement.

    Concernant 7za et le PATH, en admettant que 7za se trouve dans le répertoire %USERPROFILE%\Downloads il faut ajouter cette ligne au début du script :
    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    set "PATH=%USERPROFILE%\Downloads;%PATH%"

    Ce qui donnerait ceci :

    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    @echo off
     
    set "source=%USERPROFILE%\Downloads"
    set "destination=%USERPROFILE%\Desktop\Dossier_Actuel"
     
    set "PATH=%USERPROFILE%\Downloads;%PATH%"
     
    for %%A in (%source%\*.zip) do (
    	if not exist "%destination%\%%~nA" (mkdir "%destination%\%%~nA")
    	7za x -y -o"%destination%\%%~nA" "%source%\%%~nxA"
    )
     
    exit

    Une autre solution que modifier le PATH consiste à placer 7za dans le dossier C:\Windows\System32 ainsi tu pourras l'utiliser de n'importe où.

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2022
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2022
    Messages : 22
    Par défaut
    Merci beaucoup de votre aide, ça marche à présent.

    J'ai une dernière question : dans ce dossier, j'ai des images, donc c'est bon, elles sont décompressées.
    Mais j'ai aussi un fichier en .tar.bz2, qu'il faut donc décompresser 2 fois avant de pouvoir l'utiliser.
    Vous pensez que je peux le faire en ajoutant une ligne au script ?
    Ou est-ce que je dois faire un autre fichier batch ?

  6. #6
    Membre émérite
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET en devenir
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 549
    Par défaut
    Tu peux tout faire dans le même script, voilà un exemple :

    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    @echo off
     
    set "source=%USERPROFILE%\Downloads"
    set "destination=%USERPROFILE%\Desktop\Dossier_Actuel"
     
    set "PATH=%USERPROFILE%\Downloads;%PATH%"
     
    cd /d "%source%" || exit /b 1
     
    for %%A in (*.zip) do (
    	if not exist "%destination%\%%~nA" (mkdir "%destination%\%%~nA")
    	7za x -y -o"%destination%\%%~nA" "%source%\%%~nxA"
    )
     
    for %%A in (*.bz2) do (
    	if not exist "%destination%\%%~nA" (mkdir "%destination%\%%~nA")
    	7za x -y "%source%\%%~nxA" -so | 7za x -aoa -si -ttar -o"%destination%\%%~nA"
    )
     
    exit

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/08/2009, 12h18
  2. Suppression automatique des fichiers sur le serveur
    Par phpieur dans le forum ASP.NET
    Réponses: 9
    Dernier message: 17/05/2007, 13h19
  3. Récupérer automatiquement des fichiers sous ftp
    Par Mourne dans le forum Windows
    Réponses: 1
    Dernier message: 03/01/2007, 12h21
  4. Supprimer un fichier après son téléchargement
    Par SimoX1 dans le forum Langage
    Réponses: 7
    Dernier message: 20/11/2006, 20h05
  5. Suppression automatique des fichiers trop vieux
    Par HwRZxLc4 dans le forum Langage
    Réponses: 5
    Dernier message: 09/05/2006, 11h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo