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 :

Parcourir des dossiers avec espaces


Sujet :

Scripts/Batch

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2013
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Février 2013
    Messages : 155
    Points : 36
    Points
    36
    Par défaut Parcourir des dossiers avec espaces
    Bonjour,

    Je souhaite rassembler les fichiers de plusieurs sous-dossiers dans le dossier parent.
    Pour cela, j'ouvre une invit de commande, je me place dans le dossier parent et j'execute la commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for /f %d in ('dir /a:d /b') do move %d\* .
    Cependant, je me suis rendu compte que cette commande ne déplace pas les fichiers des sous-dossiers contenant un espace dans leur nom.
    Après quelques recherches, j'ai compris que le "in" d'un "for" est une liste séparée par des espaces d'où le problème...

    Est-ce possible de définir que le "in" soit une liste séparé par des ";" au lieu des espaces ?
    Sinon, avez-vous d'autres idées pour que je puisse déplacer les fichiers contenus dans des sous-dossiers dont les noms contiennent des espaces?

    Merci d'avance

    Cordialement, idate.

  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
    Points : 3 768
    Points
    3 768
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for /f %d in ('dir /a:d /b') do move "%d\*"
    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2013
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Février 2013
    Messages : 155
    Points : 36
    Points
    36
    Par défaut
    Bonjour sachadee,

    Merci pour ta réponse, cependant, j'ai le même résultat : "Le fichier spécifié est introuvable." car il fait un :
    au lieu d'un Cela te parait normal ?

  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
    Points : 3 768
    Points
    3 768
    Par défaut
    Utilise les modificateurs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for /f %d in ('dir /a:d /b') do move "%~dpd"*
    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2013
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Février 2013
    Messages : 155
    Points : 36
    Points
    36
    Par défaut
    Le chemin de mon dossier parent est : C:\pdf_electro\toutes1-5000
    A l'aide de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cd C:\pdf_electro\toutes1-5000
    , je me place dans ce dossier via l'invit de commande.

    J’exécute ton code avec modificateurs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for /f %d in ('dir /a:d /b') do move "%~dpd"*
    et je reçois la réponse suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\pdf_electro\toutes1-5000>move "C:\pdf_electro\toutes1-5000\"* La syntaxe du nom de fichier, de répertoire ou de volume est incorrecte
    Que font les "modificateurs" ?
    Pourquoi, à ton avis, ça ne fonctionne toujours pas?

    Merci d'avance

    idate

  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
    Points : 3 768
    Points
    3 768
    Par défaut
    Il faut mettre une destination :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    move c:\test\*.* d:\test
    par exemple
    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2013
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Février 2013
    Messages : 155
    Points : 36
    Points
    36
    Par défaut
    Je ne comprend pas pourquoi doit-on mettre une destination.
    Lorsque j'exécute :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for /f %d in ('dir /a:d /b') do move %d\* .
    , j'ai bien l'ensemble des fichiers des sous dossiers (ne contenant pas d'espaces) qui est déplacé dans mon dossier parent.

    J'ai ajouté une destination dans ma boucle for de la façon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for /f %d in ('dir /a:d /b') do move "%~dpd"*.* C:\pdf_electro\toutes1-5000
    Mais j'ai toujours l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\pdf_electro\toutes1-5000>move "C:\pdf_electro\toutes1-5000\"* La syntaxe du nom de fichier, de répertoire ou de volume est incorrecte
    Les modificateurs sont-ils bien employés dans la boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for /f %d in ('dir /a:d /b') do move "%~dpd"*.*
    ??

    Merci d'avance

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2013
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Février 2013
    Messages : 155
    Points : 36
    Points
    36
    Par défaut
    Comment dans ma boucle for puis-je faire pour que %d parcourt tous mes dossiers même ceux avec un espace ?

Discussions similaires

  1. suppression des login avec espaces
    Par maysa dans le forum Requêtes
    Réponses: 4
    Dernier message: 13/03/2008, 10h24
  2. [EasyPHP] Créer des dossiers avec php
    Par Mo_Poly dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 20/11/2007, 00h11
  3. Nom de dossier avec espace
    Par cincap dans le forum Débuter
    Réponses: 5
    Dernier message: 19/11/2007, 14h59
  4. Compresser des dossiers avec .NET 2.0
    Par Nixar dans le forum VB.NET
    Réponses: 3
    Dernier message: 13/06/2007, 17h56
  5. Parcourir des dossiers
    Par gazelle dans le forum Langage
    Réponses: 5
    Dernier message: 31/05/2007, 12h27

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