Ajout de chaîne dans le nom de fichiers

Résolu/Fermé
DelNC Messages postés 2234 Date d'inscription samedi 25 octobre 2014 Statut Membre Dernière intervention 22 février 2020 - 31 août 2019 à 11:16
jordane45 Messages postés 38308 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 - 1 sept. 2019 à 02:11
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

barnabe0057 Messages postés 14452 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 3 août 2024 4 917
Modifié le 31 août 2019 à 12:43
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
DelNC Messages postés 2234 Date d'inscription samedi 25 octobre 2014 Statut Membre Dernière intervention 22 février 2020 2 002
31 août 2019 à 23:24
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
barnabe0057 Messages postés 14452 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 3 août 2024 4 917
31 août 2019 à 23:38
Pourrais-tu préciser le résultat que tu obtiens ?
0
DelNC Messages postés 2234 Date d'inscription samedi 25 octobre 2014 Statut Membre Dernière intervention 22 février 2020 2 002
31 août 2019 à 23:42
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
barnabe0057 Messages postés 14452 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 3 août 2024 4 917
31 août 2019 à 23:45
Je peux te corriger cela, si tu veux bien poster ton code.
0
DelNC Messages postés 2234 Date d'inscription samedi 25 octobre 2014 Statut Membre Dernière intervention 22 février 2020 2 002
31 août 2019 à 23:53
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
barnabe0057 Messages postés 14452 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 3 août 2024 4 917
1 sept. 2019 à 00:00
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