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 :

Variable de redirection selon la taille [Batch]


Sujet :

Scripts/Batch

  1. #1
    Membre régulier
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Janvier 2012
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 97
    Points : 75
    Points
    75
    Par défaut Variable de redirection selon la taille
    Bonjour,

    J’essaie de faire un script pour trier/déplacer des fichiers par extension et taille, mais le soucis est que je n'arrive pas a trouvé la variable tel que:
    < 500Mo va être placé dans dossier XXX et inversement

    Actuellement en base de code j'ai cela:
    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
    cd C:\test\
    
    Set extension=mp4
    Set extension2=avi
    Set extension3=mkv
    
    :: 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 copie dans dossier précis
      If %%~xa==.%extension% Xcopy /y "%%a" C:\test\Serie\
      If %%~xa==.%extension2% Xcopy /y "%%a" C:\test\Film\
      If %%~xa==.%extension3% Xcopy /y "%%a" C:\test\Blueray\
     )
    
    Endlocal
    pause
    Si quelqu'un aurait une petite idée sur la modification de la variable

    Pour le moment j'ai réussi a trouvé une variable mais je n'arrive pas à la mettre en forme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     for /r "test" %%i in (*.*) do if "%%~zi" geq "500000000" move "test\*.*" "source\*.*
    Merci

  2. #2
    Membre émérite
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Points : 2 274
    Points
    2 274
    Par défaut
    salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for /r "test" %%i in (*) do if %%~zi geq 524288000 move "%%~i" "source\"
    Attention à la conversion entre les mégaoctets et l'unité de travail qui est l'octet.
    Et pour info, sauf erreur, IF ne peut pas faire de comparaison, sans subterfuges, sur des fichiers de plus de 2 gigaoctets.

  3. #3
    Membre régulier
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Janvier 2012
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 97
    Points : 75
    Points
    75
    Par défaut
    Citation Envoyé par minnesota Voir le message
    IF ne peut pas faire de comparaison, sans subterfuges, sur des fichiers de plus de 2 gigaoctets.
    Ce n'est pas réellement un soucis la pluspart de mes fichiers sont tronquer en .part

    actuellement j'en suis arrivé à cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    @echo off
    
    cd C:\test\
    
    :: filtrer les types de fichiers dans les Sous-dossiers & move
    For /f "tokens=*" %%a In ('dir /s /b /a-d "*.mp4"') Do (if "%%~zi" geq "500000000" (move "\%%i" "source_500mega\") else (move "test\%%i" "source_pas500mega\"))
    For /f "tokens=*" %%a In ('dir /s /b /a-d "*.avi"') Do (if "%%~zi" geq "500000000" (move "test\%%i" "source_500mega\") else (move "test\%%i" "source_pas500mega\"))
    For /f "tokens=*" %%a In ('dir /s /b /a-d "*.mkv"') Do (if "%%~zi" geq "500000000" (move "test\%%i" "source_500mega\") else (move "test\%%i" "source_pas500mega\"))
    
      Endlocal
    pause
    J'ai bien pourtant tout les dossier d'existant et j'ai un message comme quoi il ne trouve pas les fichiers spécifiés.

    J'ai aussi retiré le chemin de pointage du "cd" et remplacer par des .txt .doc .xls... en réduisant la taille, je l'ai mit en racine du dossier "test" et toujours rien

    Pour infos je tourne sous win7 sur le netbook qui gère le NAS

  4. #4
    Membre régulier
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Janvier 2012
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 97
    Points : 75
    Points
    75
    Par défaut
    Après un peu d'acharnement sur la chose voici le script final (si ca peut aider) qui fonctionne:

    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
    :debut
    set /P ext="Choisir extension : "
    pause
    
    if "%ext%" == "" goto fin
    
    set destination1=source1
    set destination2=source2
    
    if not exist "%destination1%" ( echo "%destination1% n'existe pas !!" & goto fin )
    if not exist "%destination2%" ( echo "%destination2% n'existe pas !!" & goto fin )
    
    For /f "tokens=*" %%a In ('dir /s /b /a-d "*."%ext%') Do @(if %~za geq 50000 (move "%%a" "%destination1%") else (move "%%a" "%destination2%"))
    
    goto debut
    
    :fin

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

Discussions similaires

  1. Post d'une variable avant redirection
    Par bart64 dans le forum Langage
    Réponses: 5
    Dernier message: 16/08/2006, 20h15
  2. Taille d'une cellule qui varie selon la taille d'un mot
    Par shadeoner dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 10/08/2006, 21h42
  3. Afficher un element selon sa taille en centimetre
    Par dacid dans le forum Delphi
    Réponses: 8
    Dernier message: 24/07/2006, 13h51
  4. Réponses: 3
    Dernier message: 10/05/2006, 21h37
  5. Réponses: 1
    Dernier message: 06/11/2005, 17h16

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