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 :

classer des fichiers par extension [Batch]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 8
    Par défaut classer des fichiers par extension
    Bonsoir,

    Je cherche a faire un script batch pour trier des fichiers multimédia selon leurs extensions, exemple dans le dossier video je veux tous les fichiers d'extension (avi,wmv,mov,divx, xvid, mkv,str,etc...

    mon problème, je pense que m'a syntaxe est fausse, rien ne ce passe

    mon code est :
    Code : 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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    #!/bin/bash
    @ECHO OFF
    cls
    :boucle
    
    
    
    for extension in 'ls |cut -d "." -f2'
    do
    
    if   $extension==avi (goto video)
    if   $extension==wmv (goto video)
    if   $extension==mov (goto video)
    if   $extension==divx (goto video)
    if   $extension==xvid (goto video)
    if   $extension==mkv (goto video)
    if   $extension==mka (goto video)
    if   $extension==mks (goto video)
    if   $extension==mpeg4 (goto video)
    if   $extension==mp4 (goto video)
    if   $extension==avc (goto video)
    if   $extension==flv (goto video)
    if   $extension==str (goto video)
    
    :video
    mkdir video
    mv *.$extension ./video
    
    goto boucle
    pour le moment je n'es fais que les fichiers videos a l'avenir je voudrais sous la même structure ajouter les musiques, images et autre

    Merci d'avance

  2. #2
    Membre Expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Par défaut
    Salut,

    Code : 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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    @echo off&color e&cls
    
    ::::::::::::::::::::::::::::::::::::::::::::::::
    
    ::::LES EXTENSIONS A TESTER POUR LA VIDEO
    
    SET $video=avi mp4 flv divx xvid mkv str
    
    :::LE REPERTOIRE DE TEST
    
    set $RT=%~dp0
    
    :::LE REPERTOIRE DE SAUVEGARDE
    set $RV=%~dp0video
    
    :::::::::::::::::::::::::::::::::::::::::::::::::
    ECHO. REPERTOIRE DE TEST  = %~dp0&ECHO. REPERTOIRE DE SORTIE = %~DP0VIDEO&ECHO.
    
    if not exist "%$RT%" (echo REPERTOIRE DE TEST INEXISTANT
                          pause&exit)
    
    if not exist "%$Rv%" (echo REPERTOIRE VIDEO INEXISTANT
                          pause&exit)
    
    CALL :VIDEO
    echo.&echo # TRAITEMENT TERMINE #&pause&endlocal&exit           
     
    setlocal enabledelayedexpansion enableextensions
    
    :VIDEO
    
    FOR /f "delims=" %%A IN ('dir "%$RT%" /aa /b') DO (ECHO. TRAITEMENT DE  ^: %%~FA
                                                      FOR %%B IN (%$VIDEO%) DO (IF /I .%%B==%%~XA ECHO TROUVE&COPY %%~FA %$RV%))
    Amicalement

  3. #3
    Expert confirmé
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 844
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 844
    Par défaut
    Voici une autre solution avec un Script VBS si vous êtes intéressé
    Recherche & Sauvegarde des fichiers par leurs Extensions

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 8
    Par défaut
    Excellent merci ça marche très bien !
    mais je n'arrive pas trouver la commande a modifier pour passer de copier a déplacer

    je voudrais aussi qu'a chaque fichier déplacé le script écrive cette action dans un historique.txt

    du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "fullfilename=$fullfilename" "destination" %date% %time% >> historique_classement.txt
    Code : 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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
      :::TRIAGE DE FICHIER PAR EXTENSION
    :::Sachadee
    :::www.bbat.forumeiros.com
    
    :debut
    @echo off&color e&cls
    
    ::::::::::::::::::::::::::::::::::::::::::::::::
    
    ::::LES EXTENSIONS A TESTER POUR LA VIDEO
    
    SET $video=avi mp4 flv divx xvid mkv str
    
    :::LE REPERTOIRE DE TEST
    
    set $RT=%~dp0
    
    :::LE REPERTOIRE DE SAUVEGARDE
    set $RV=%~dp0video
    
    :::::::::::::::::::::::::::::::::::::::::::::::::
    ECHO. REPERTOIRE DE TEST  = %~dp0&ECHO. REPERTOIRE DE SORTIE = %~DP0VIDEO&ECHO.
    
    if not exist "%$RT%" (echo REPERTOIRE DE TEST INEXISTANT
                          pause&exit)
    
    if not exist "%$Rv%" (echo REPERTOIRE VIDEO INEXISTANT
                          mkdir video)
    
    CALL :VIDEO
    echo.&echo # TRAITEMENT TERMINE #     
     
    setlocal enabledelayedexpansion enableextensions
    
    :VIDEO
    
    FOR /f "delims=" %%A IN ('dir "%$RT%" /aa /b') DO (ECHO. TRAITEMENT DE  ^: %%~FA 
                                                      FOR %%B IN (%$VIDEO%) DO (IF /I .%%B==%%~XA ECHO TROUVE&COPY %%~FA %$RV%))
    goto debut
    

  5. #5
    Membre Expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Par défaut
    Salut, tu as essayé, la commande "MOVE" ?

    et pour ton texte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    
    FOR /f "delims=" %%A IN ('dir "%$RT%" /aa /b') DO (ECHO. TRAITEMENT DE  ^: %%~FA 
                                                      FOR %%B IN (%$VIDEO%) DO (IF /I .%%B==%%~XA (ECHO TROUVE&MOVE %%~FA %$RV%
                                                                                         ECHO %date% %time% %%~FA COPIE DANS %$RV%>>Historique.txt)))
    Amicalement

  6. #6
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 8
    Par défaut
    j'ai l'impression que move fonctionne puisque quelque fichiers video son déplacé dans /video mais pas tous loin de la. je cherche d'où ça pourrais venir, pas de l'extension elles sont toute dans le script.

    l'historique affiche tout les fichiers de type vidéo (même ce qui n'ont pas étaient transféré) pour l'historique inutile de chercher a l’amélioré il est très bien comme ça, mais cette erreur est peut être une piste pour corriger le premier problème

    merci beaucoup sachadee de m'aider

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 8
    Par défaut
    Problème résolu, les espaces empêchait le bon fonctionnement du script

    Code : 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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    :::TRIAGE DE FICHIER PAR EXTENSION
    :::Sachadee
    :::www.bbat.forumeiros.com
    
    :debut
    @echo off&color e&cls
    
    ::retire les espaces des noms de fichiers
    for /f "delims=" %%a in ('dir /b') do call :cmd "%%a"
    
    :cmd
    set fichierbck=%~1
    set fichier=%fichierbck: =%
    ren "%fichierbck%" "%fichier%"
    
    
    
    ::::::::::::::::::::::::::::::::::::::::::::::::
    
    ::::LES EXTENSIONS A TESTER POUR LA VIDEO
    
    SET $video=avi mp4 flv divx xvid mkv str
    
    :::LE REPERTOIRE DE TEST
    
    set $RT=%~dp0
    
    :::LE REPERTOIRE DE SAUVEGARDE
    set $RV=%~dp0video
    
    :::::::::::::::::::::::::::::::::::::::::::::::::
    ECHO. REPERTOIRE DE TEST  = %~dp0&ECHO. REPERTOIRE DE SORTIE = %~DP0VIDEO&ECHO.
    
    if not exist "%$RT%" (echo REPERTOIRE DE TEST INEXISTANT
                          pause)
    
    if not exist "%$Rv%" (echo REPERTOIRE VIDEO INEXISTANT
                          mkdir video)
    
    CALL :VIDEO
    echo.&echo # TRAITEMENT TERMINE #     
     
    setlocal enabledelayedexpansion enableextensions
    
    :VIDEO
    
    
    FOR /f "delims=" %%A IN ('dir "%$RT%" /aa /b') DO (ECHO. TRAITEMENT DE  ^: %%~FA 
                                                     FOR %%B IN (%$VIDEO%) DO (IF /I .%%B==%%~XA (ECHO TROUVE&MOVE %%~FA %$RV%
     							 ECHO %date% %time% 	%%~FA 	COPIE DANS 	%$RV%>>Historique.txt)))
    goto debut
    
    petites idées pour améliorer tout ça :
    1- le script s’arrête au bout d'un moment, je préférerais qu'il continu indéfiniment
    2- peux t'on lui faire parcourir tout les dossiers du répertoire tout en déplaçant les nouvelles vidéos trouvées dans le même dossier que les précédentes ?

  8. #8
    Membre Expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Par défaut
    salut je pense que tu as des fichiers qui sont en lecture seul ou dont tu n'as pas les droits nécessaires pour leur suppressions. essaye de faire un copy puis ensuite un delete. pour voir.

    Regarde l'attribut des fichiers qui ne se déplace pas et modifie si nécessaire.

  9. #9
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 8
    Par défaut
    je ne comprend pas ton conseil, le script marche dans l’état actuel.
    je souhaite simplement l’améliorer

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Recherche & Sauvegarde des fichiers par leurs Extensions
    Par hackoofr dans le forum Vos Contributions VBScript
    Réponses: 1
    Dernier message: 16/02/2013, 07h22
  2. Classer des fichiers par date
    Par lorentdups dans le forum Langage
    Réponses: 3
    Dernier message: 01/10/2006, 17h14
  3. [Regexp] pattern pour trouver des fichiers par exclusion d'extension
    Par mnementh64 dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 07/09/2006, 10h34
  4. Classer des messages par date ET par pertinence
    Par pocpoc2 dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 04/07/2005, 10h54
  5. [apache] .htaccess -> bloquer fichiers par extensions
    Par yann_441 dans le forum Apache
    Réponses: 2
    Dernier message: 01/07/2005, 18h14

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