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 :

Copier X Fichiers dans différents répertoires


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 7
    Par défaut Copier X Fichiers dans différents répertoires
    Bonjour,

    je galère un peu sur un batch, n'étant pas un pro en la matière, je viens chercher un peu d'aide.
    J'aimerais faire un script qui, à partir d'un répertoire contenant 50.000 fichiers, copie les 10.000 premiers fichiers dans un répertoire, les 10.000 suivant dans un autre etc.

    J'ai commencé à écrire ça mais je m'en sors pas :

    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
    set compteur=1 
    for %%i in (c:\ImgTotal\\*.*) do (
    	set /A compteur+=1 
    	set compteur
    	if compteur GEQ 1 if compteur LSS 10000 (
    		copy %%i c:\img01\
    	)
    	if compteur GEQ 10000 if compteur LSS 20000 (
    		copy %%i c:\img02\
    	)
    	if compteur GEQ 20000 if compteur LSS 30000 (
    		copy %%i c:\img03\
    	)
    	if compteur GEQ 30000 if compteur LSS 40000 (
    		copy %%i c:\img04\
    	)
    	if compteur GEQ 40000 if compteur LSS 50000 (
    		copy %%i c:\img05\
    	)
    )
    Quelqu'un aurait une idée ?
    Merci d'avance =)

  2. #2
    Membre émérite Avatar de bstevy
    Homme Profil pro
    Solutions Architect
    Inscrit en
    Mai 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Japon

    Informations professionnelles :
    Activité : Solutions Architect
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2009
    Messages : 552
    Par défaut
    un truc comme ca pourrait t'aider peut etre


    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
    Setlocal EnableDelayedExpansion
    
    set compteur = 0 
    
    for %%i in (./*) do (
    	set /a compteur += 1
    	if !compteur! LSS  10 (
    		echo dossier1
    	) else (
    		if !compteur! LSS  20 (
    			echo dossier2
    		) else (
    			if !compteur! LSS  30 (
    				echo dossier3
    			)
    		)
    	)
    	
    )

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 7
    Par défaut
    Salut bstevy, merci pour ta réponse.
    Ça fonctionne effectivement très bien, je te remercie.

    Par contre, vu la lourdeur des traitements, je me retrouve avec un batch qui s'arrête sur un "mémoire insuffisante"... Existe-il une commande pour vider la mémoire ou une astuce du genre ?

    Encore merci.

    edit : à noter que je travaille sur un dossier avec 350.000 fichiers dedans, peut-être que la variable compteur ne dépasse pas 65.000 ou autre ?

  4. #4
    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
    Une autre idée avec 2 compteurs.

    et création automatique des réepertoires.

    Je n'ai pas testé (fait depuis mon tablet...)


    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    setlocal enabledelayedexpansion
     
    set "$compteur1=1"
    set "$compteur2=1"
     
    for %%i in (c:\ImgTotal\*.*) do (
       if not exist "c:\img!$compteur1!"  md "c:\img!$compteur1!"
       copy "%%i" "c:\img!$compteur1!"
       if !$compteur2!==10000 (
            set /a $compteur1+=1
            set $compteur2=1
       )
       set /a $compteur2+=1
     
    )


  5. #5
    Membre émérite Avatar de bstevy
    Homme Profil pro
    Solutions Architect
    Inscrit en
    Mai 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Japon

    Informations professionnelles :
    Activité : Solutions Architect
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2009
    Messages : 552
    Par défaut
    LOL

    t'aurais pu le faire avec un seul compteur et un modulo ^^

  6. #6
    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


    Citation Envoyé par bstevy Voir le message
    LOL

    t'aurais pu le faire avec un seul compteur et un modulo ^^
    Dans ce cas Effectivement, mais il faut penser au autres situations.
    Si quelqu'un à le même problème mais avec 3245 fichiers.

    Soyons générique...... Et par la même essayons d'être constructif. (LOL)


Discussions similaires

  1. copier un fichier dans un répertoire différents
    Par THIB46 dans le forum VC++ .NET
    Réponses: 2
    Dernier message: 11/06/2015, 11h07
  2. Stocker ses fichiers dans différents répertoires
    Par dtthierry dans le forum Langage
    Réponses: 1
    Dernier message: 22/09/2008, 17h05
  3. Réponses: 4
    Dernier message: 21/08/2007, 10h40
  4. Copier un fichier dans un répertoire?
    Par jbjweb dans le forum C
    Réponses: 5
    Dernier message: 05/09/2006, 15h34
  5. Copier un fichier dans un répertoire
    Par soft damsel dans le forum Langage
    Réponses: 2
    Dernier message: 14/02/2006, 16h02

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