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 :

Remplacer les espaces par des tirets dans le nom des dossiers et fichiers


Sujet :

Scripts/Batch

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Technicien Help Desk
    Inscrit en
    Janvier 2016
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Janvier 2016
    Messages : 23
    Points : 27
    Points
    27
    Par défaut Remplacer les espaces par des tirets dans le nom des dossiers et fichiers
    Bonjour à tous et toutes

    Je viens vers vous car j'ai un problème que je n'arrive pas à régler.

    J'ai un tas de dossiers, sous dossiers, et fichiers que je voudrais renommer.


    Pour l'instant, j'arrive à avoir la liste de tous les dossiers et fichiers que je mets dans un fichier
    Voilà mon script

    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      for /f "delims=" %%a In ('dir /b/ad/s/a  "C:\Users\Desktop\Bureau\Documents" ') Do (
        		echo %%a >>resultat1.txt
        )

    Il me semble que pour renommer un dossier il faut utiliser la commande ren .

    Je voudrais, si possible, pouvoir de renommer (remplacer les espaces par des -) les dossiers et les fichiers à l'aide d'un script.

    Merci pour l'aide que vous m'apporterez.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 47
    Points : 57
    Points
    57
    Par défaut
    Salut!

    Une petite piste comme ca :
    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    set str=chemin avec des espaces.
    echo %str%
    set str=%str: =-%
    echo %str%

  3. #3
    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
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    @echo off
    setlocal enabledelayedexpansion
    
     for /f "delims=" %%a In ('dir /b/a-d/s  "C:\Users\Desktop\Bureau\Documents" ') Do (
         set "$File=%%~nxa"
         set "$File=!$File: =-!"
         ren "%%a" "!$File!"
        )

  4. #4
    Nouveau membre du Club
    Femme Profil pro
    Technicien Help Desk
    Inscrit en
    Janvier 2016
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Janvier 2016
    Messages : 23
    Points : 27
    Points
    27
    Par défaut
    Bonjour et merci sachadee et BeN0o8

    J'ai fais des tests

    C'est ok pour les fichiers, les espaces sont bien remplacés par les tirets


    sachadee , j'ai juste modifié un peu le code, maintenant les dossiers sont aussi renommés.

    @echo off
    setlocal enabledelayedexpansion

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     for /f "delims=" %%a In ('dir /b/a-d/s/a  "C:\Users\mougi\Desktop\dossier_sous_dossier_fichier" ') Do (
         set "$File=%%~nxa"
         set "$File=!$File: =-!"
         ren "%%a" "!$File!"
        )
    Maintenant, je vais voir comment faire pour remplacer les caractères spéciaux.
    Remplacer é, è, ê par e
    Idem pour à, ù, ....
    Apparemment en faisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set "$File=!$File:é=e!"
    ça ne marche pas.

    @+

  5. #5
    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
    Salut,

    Utilises exactement ces caractères pour le :

    é utilise => ‚ (attentione ce n'esta pas une virgule)
    è utilise => Š
    ê utilise => ˆ
    à utilise => …
    ù utilise => —

    En fait tu fais un :

    et dans accent.txt tu auras le caractère à utiliser pour la substitution.


  6. #6
    Nouveau membre du Club
    Femme Profil pro
    Technicien Help Desk
    Inscrit en
    Janvier 2016
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Janvier 2016
    Messages : 23
    Points : 27
    Points
    27
    Par défaut
    Bonjour sachadee


    Je ne comprends pas trop ce que je dois faire.
    J'ai fais des tests mais je n'y arrive pas

    Si je mets
    ça ne créé un fichier avec é dedans mais après je ne vois pas comment remplacer les é dans les noms de mes fichiers par des e.


    Je continue de chercher.
    @+

  7. #7
    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
    sinon essaye comme ça avec les caractères normal :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    @echo off
    for /f "tokens=2 delims=:" %%x in ('chcp') do set cp=%%x
    chcp 1252>nul
    
    ::Ton code ici
    set $File=!$File:é=e!
    
    chcp %cp%>nul

Discussions similaires

  1. remplacer les espaces par des _ dans une table
    Par NeutronDance dans le forum Requêtes
    Réponses: 3
    Dernier message: 15/10/2010, 00h16
  2. remplacer espace par un tiret dans liens hypertexte
    Par kate59 dans le forum Langage
    Réponses: 2
    Dernier message: 21/07/2010, 11h09
  3. Comment remplacer les espaces par la valeur NULL
    Par ToniConti dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 15/04/2010, 12h41
  4. [RegEx] Remplacer les espaces par des -
    Par Seb33300 dans le forum Langage
    Réponses: 2
    Dernier message: 16/01/2009, 14h04
  5. Réponses: 6
    Dernier message: 23/01/2007, 10h17

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