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

Windows Discussion :

[MS-DOS] FOR, Rename : espaces


Sujet :

Windows

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 21
    Par défaut [MS-DOS] FOR, Rename : espaces
    Bonjour,

    Ceci est mon premier post, j'espère ne pas me tromper de catégorie.

    J'ai un batch ajoutant un préfixe prédéfini aux dossiers du répertoire courant. Le problème est que les dossiers contenant un espace ne sont pas traités et amènent un message d'erreur : "La syntaxe de la commande est incorrecte.".

    Voici le script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    @echo off
    echo Renommage
    
    set %PREFIX="abc - "
    echo Le prefixe est %PREFIX%
    
    FOR /D %%i IN (*) DO rename "%%i" %PREFIX%%%i
    
    pause
    j'ai essayé toutes les combinaisons de guillemets autour de "rename %%i" et "%PREFIX%%%i".

    Voila, si quelqu'un sait résoudre ce problème, je suis intéressé.

  2. #2
    Membre éprouvé
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Par défaut
    Essaye comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    @echo off
    echo Renommage
    
    set %PREFIX="abc - "
    echo Le prefixe est %PREFIX%
    
    FOR /D %%i IN (*) DO rename "%%i" "%PREFIX%%%i"
    
    pause

  3. #3
    Membre éprouvé
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Par défaut
    Non en fait il faut faire comme ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    set PREFIX=abc - 
    echo Le prefixe est %PREFIX%
    
    FOR /D %%i IN (*) DO rename "%%i" "%PREFIX%%%~nxi"
    
    pause
    pause>nul
    Tester et fonctionel

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 21
    Par défaut
    Merci koKoTis,

    Ca marche parfaitement. J'ai fait une recherche rapide et je n'ai rien trouvé sur l'utilisation du tild comme tu l'as faite. Tu peux m'expliquer un peu s'il te plait?
    edit: autant pour moi, pour le tild, c'est dans l'aide...

    edit :
    WOW!

    je vien d'exécuter ce script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    @echo off
    echo Renommage
    
    set PREFIX=Pink Floyd - 
    echo Le prefixe est %PREFIX%
    
    FOR /D %%i IN (*) DO rename "%%i" "%PREFIX%%%~nxi"
    
    pause
    Résultat : le batch a collé devant chaque dossier le plus de fois possible le préfixe... c'est moche! et j'ai pas envie de ratrapper ça à la main ='(

    Il faut noter que le script marche très bien dans mon dossier de test... même avec un espace dans le dossier racine du batch...

  5. #5
    Membre éprouvé
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Par défaut
    Citation Envoyé par blackaagony
    Merci koKoTis,

    Ca marche parfaitement. J'ai fait une recherche rapide et je n'ai rien trouvé sur l'utilisation du tild comme tu l'as faite. Tu peux m'expliquer un peu s'il te plait?
    edit: autant pour moi, pour le tild, c'est dans l'aide...

    edit :
    WOW!

    je vien d'exécuter ce script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    @echo off
    echo Renommage
    
    set PREFIX=Pink Floyd - 
    echo Le prefixe est %PREFIX%
    
    FOR /D %%i IN (*) DO rename "%%i" "%PREFIX%%%~nxi"
    
    pause
    Résultat : le batch a collé devant chaque dossier le plus de fois possible le préfixe... c'est moche! et j'ai pas envie de ratrapper ça à la main ='(

    Il faut noter que le script marche très bien dans mon dossier de test... même avec un espace dans le dossier racine du batch...
    Je comprend pas il marche comme tu veut ? ou pas ?

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 21
    Par défaut
    Pour une raison que je ne comprend pas, lors de l'exécution du script, le préfixe a été écrit plusieurs fois devant le nom des dossiers.
    Ce nombre de fois à l'air de correspondre au nombre max de caractères avant que le nom de chaque fichier ne soit trop long pour windows... et encore, la majorité des dossier est inaccessible par l'explorateur : "Impossible d'accéder à ce dossier, Le chemin d'accès est trop long."
    Mais ça doit venir d'une mauvaise manip de ma part puisque le script semble fonctionner quand je l'exécute ailleurs...
    Donc maintenant je vais essayer de faire un batch qui enleve toutes les chaines de caractère %PREFIX% des noms de dossier...

    Si je n'y arrive pas, je supprime le multi-prefixe manuellement pour chaque dossier, puis je réexécute le script en espérant qu'il ne se passe pas la même chose...
    je te tien au courant...

Discussions similaires

  1. Commande dos qui nous envoie l'espace disque restant
    Par soulsidibe dans le forum Autres Logiciels
    Réponses: 14
    Dernier message: 09/06/2011, 00h09
  2. Commande dos For et nom de fichiers avec espaces
    Par VinnieMc dans le forum Administration
    Réponses: 1
    Dernier message: 28/06/2008, 15h12
  3. [DOS] supprimer les espaces de debut de lignes
    Par halmix dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 15/03/2007, 10h05
  4. [DOS] Boucle FOR : récupérer %%i dans une variable
    Par Pomalaix dans le forum Autres Logiciels
    Réponses: 5
    Dernier message: 06/12/2005, 16h18
  5. Réponses: 2
    Dernier message: 24/06/2004, 09h13

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