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

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 21
    Points : 15
    Points
    15
    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
    Débutant  
    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
    Points : 2 415
    Points
    2 415
    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
    Débutant  
    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
    Points : 2 415
    Points
    2 415
    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 à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 21
    Points : 15
    Points
    15
    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
    Débutant  
    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
    Points : 2 415
    Points
    2 415
    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 à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 21
    Points : 15
    Points
    15
    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...

  7. #7
    Débutant  
    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
    Points : 2 415
    Points
    2 415
    Par défaut
    Chez moi avec ce code le préfixe n'est ajouter qu'une seul foi:

    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

    Citation Envoyé par blackaagony
    je te tien au courant...
    OK

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 21
    Points : 15
    Points
    15
    Par défaut
    bon j me suis tapé toute la doc for, ça m'a pas mal familiarisé avec cette commande.
    donc je suis reparti à 0. J'ai réalisé ce script pour ajouter un préfixe a des fichiers :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    @echo off
    for %%i in (*.txt) do (rename "%%i" "U%%i")
    pause
    j'ai exécuté plusieurs fois ce script, en changeant parfois le préfixe, dans un dossier contenant 3 fichiers vides, nommés à la base coucou.txt, hello.txt et bye.txt.

    Voici leur noms actuels :
    xxxxxxxxxUUUUxxx2007 - 2007 - bye.txt
    xxxxxxxxxUUUUxxx2007 - 2007 - coucou.txt
    xxxxxxxxxxUUUUxx2007 - 2007 - hello.txt

    Vous pouvez voir qu'il y a un x de trop dans le dernier. Lorsque j'exécute le script plusieurs fois, les fichiers ont à tour de rôle deux fois le préfixe ajouté.
    Avec "U" comme préfixe, aucun prob, mais avec "x"...
    Donc voila, ya un bug on dirait... C'est ce qui s'est passé avec mes dossiers et mon préfixe "pinkfloyd - "... Pas clean tout ça, ça donne pas envie de faire confiance au M$ DOS.

    Quelqu'un a déjà rencontré des problèmes avec cette commande? Je suis quand même étonné, parce qu'il y a des serveurs de grandes entreprises qui sont gérés avec des scripts M$ DOS, alors ça se saurait si c'était peu fiable à ce point...

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