.Bat = Remplacer les espaces d'une variable par des _

micromega Messages postés 141 Statut Membre -  
dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'aurais besoin de remplacer les espaces du chemin que me renvoi une variable, par des " _ " (touche 8) :

"%Chemin%\Dossier"

Est-ce possible ?

Merci

5 réponses

  1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Bonjour,

    Avec ceci sûrement :

    Variable Edit/Replace

    Use the syntax below to edit and replace the characters assigned to a string variable.

    Syntax
    %variable:StrToFind=NewStr%

    %~[param_ext]$variable:Param

    Key
    StrToFind : The characters we are looking for
    NewStr : The chars to replace with (if any)
    variable : The environment variable
    param_ext : Any filename Parameter Extension
    Param : A command line parameter (e.g. 1)


    https://ss64.com/nt/syntax-replace.html

    .
    3
  2. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    hello
    C:> set chemin=\a a\b b\c c\
    C:> set nc=%chemin: =_%
    C:> echo %nc%
    \a_a\b_b\c_c\

    1
  3. Utilisateur anonyme
     
    Salut,

    Si tu arrives à stocker ce chemin dans un fichier texte ensuite, je peux faire ça sous Python ou en C si ça t'intéresse.
    0
  4. micromega Messages postés 141 Statut Membre 1
     
    Bonjour,

    Merci pour la réponse.
    J'ai des connaissances assez limitées en ".Bat", mais aucune idée sur comment agir directement dans le ".bat" sans avoir à sortir le chemin dans un fichier externe ?
    Merci en tout cas pour la proposition.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. micromega Messages postés 141 Statut Membre 1
     
    Bonjour,

    La solution de Dubcek marche parfaitement.

    Merci pour l'aide.

    Dernier point : J'ai un logiciel qui s'exécute en ligne de commande.
    A chaque fois, il faut lui indiquer le chemin du fichier à partir de la racine du disque où il se trouve (ex: "C:\Dossier 1\Dossier 2\Dossier 3\Fichier")

    Si je place ce logiciel de ligne de commande directement dans "Dossier 2", est-ce possible de le faire commencer à partir de là ?
    (ex: "Dossier 2\Dossier 2\Fichier") ?
    D'origine cela ne fonctionne pas (pour infos je l'utilise combiné à un ".bat".

    Merci
    0
    1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
       
      Dossier 2\Dossier 2\Fichier il n'y a pas de \ devant, donc il faut etre dans Dossier 1
      c'est un chemin relatif
      0