Ajout de chaîne dans le nom de fichiers

Résolu
DelNC Messages postés 2360 Statut Membre -  
jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour à tous et toutes

Je cherche un script . Bat qui me permettrai d'ajouter la même chaîne dans le nom des fichiers d'un dossier.

J'arrive à remplacer des caractères dans le noms des documents
@echo off
setlocal enabledelayedexpansion
 
chcp 1252
for /r "C:\Users\Delphine\Documents\notes" %%a in (*.csv) do (
  set "path=%%~nxa"
  set "path=!path:é=e!"
  set "path=!path:è=e!"
  move /y "%%~a" "%%~dpa!path!"
)
pause


J'arrive aussi à ajouter du texte dans un fichier de type txt après le premier ; de chaque ligne
set champ2=categorie
for /F "delims=; tokens=1,*" %%a in (resultat1.txt) do (
        echo %%a;%champ2%;%%b
        echo %%a;%champ2%;%%b >>resultat_final.txt
)


Mais je n'arrive pas à ajouter la même chaîne, exemple Nom - au début du nom des fichiers dans mon dossier

Merci pour l'aide que vous pourrez m'apporter.
Bonne journée à vous

2 réponses

  1. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930
     
    Bonjour,

    Il suffit de reprendre ton premier exemple et de rajouter la chaîne au début du nom, par exemple :
    set "path=Nom - %%~nxa"

    Le gros problème de ton premier exemple est l'utilisation de la variable %PATH%, je te suggère très très fortement de changer le nom de cette variable.

    0
  2. DelNC Messages postés 2360 Statut Membre 2 010
     
    Bonjour barnabe0057

    J'ai essayé votre ligne de commande.
    Ça ne marche pas, je vais continuer de chercher la solution

    Merci d'avoir répondu
    0
    1. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930
       
      Pourrais-tu préciser le résultat que tu obtiens ?
      0
    2. DelNC Messages postés 2360 Statut Membre 2 010
       
      Au fait, quand je lance le script, la fenêtre s'ouvre et se ferme tout de suite.

      Je devrait normalement pour chaque ligne du dossier une ligne sur la fenêtre
      Mais là, il ne se passe rien

      Il doit y avoir une erreur de syntaxe
      0
    3. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930
       
      Je peux te corriger cela, si tu veux bien poster ton code.
      0
    4. DelNC Messages postés 2360 Statut Membre 2 010
       
      Voilà le code
      J'ai fais comme tu l'as dit,
      - pris mon premier script
      - mis la ligne de commande que tu as indiqué

      @echo off
      setlocal enabledelayedexpansion
       
      chcp 1252
      for /r "C:\Users\Delphine\Documents\notes" %%a in (*.csv) do (
        set "path=%%~nxa"
        set "path=Delphine - %%~nxa"
        move /y "%%~a" "%%~dpa!path!"
      )
      pause
      0
    5. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930
       
      Ce n'est pas exactement ce que je voulais dire, je voulais dire ça :

      @echo off
      setlocal enabledelayedexpansion

      chcp 1252
      for /r "C:\Users\Delphine\Documents\notes" %%a in (*.csv) do (
      set "file=Delphine - %%~nxa"
      move /y "%%~a" "%%~dpa!file!"
      )
      pause
      0