Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
[Résolu]Renommer des fichiers
Auteur Message
Répondre en citant
Message [Résolu]Renommer des fichiers 
Bonjour,

je voudrais faire un batch qui renomme tous les fichiers contenus dans le dossier du batch, en remplaçant les lettres par d'autres. Par exemple a->s, r->j, B->T, ... Je ne m'y connais absolument pas en programmation de batch mais avec de l'aide j'ai pu parvenir à ce code:

Code:
@echo off

setlocal enabledelayedexpansion enableextensions
for /f "delims=" %%a in ('dir *.* /aa /b') do (set $m=%%~na
                                               set #=%$m%
                                               set /a $l=0
                                               set nom=
                                               :loop
                                               if defined # (set #=%#:~1%&set $l#=!$m:~%$l%,1!
                                                             if "!$l#!" equ "a" set nom=%nom%s
                                                             if "!$l#!" equ "r" set nom=%nom%j
                                                             if "!$l#!" equ "B" set nom=%nom%T
                                                             set /a $l +=1
                                                             goto :loop)
                                               echo %nom%
                                               pause
                                               REN "%%~Fa" %nom%
                                               pause)


L'ennui c'est que ce code ne marche pas du tout. Pourriez-vous m'aider à régler le problème?

Merci.



Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message [Résolu]Renommer des fichiers 
bonjour
as tu des messages d erreur ?

pourquoi utilises tu le paramètres /aa dans la commande dir ?
places tu le batch dans le dossier à analyser ?




______________________________________________________
Faites paraitre votre batch sur BatchClipboard
Visiter le site web du posteur
Répondre en citant
Message [Résolu]Renommer des fichiers 
Oui le batch est bien dans le dossier à analyser.

Pour chaque fichier traité j'ai le message d'erreur:

"commande echo désactivée"
"la syntaxe de la commande n'est pas correcte"

Pour le /aa je ne sais pas, j'ai trouvé cela sur d'autres forums.



Répondre en citant
Message [Résolu]Renommer des fichiers 
Salut Floyd12,
Ces codes sont de moi : http://www.developpez.net/forums/d1352994/general-developpement/programmati…

Mais tu en a fait un montage un peu spécial voici la partie qui t'intèresse. Mais tu verras qu'un problème surgira. Les solutions sont déjà dans le lien ci-dessus.
Si tu bloques fais le nous savoir.

Code:


@echo 
 

setlocal enabledelayedexpansion enableextensions

for /f "delims=" %%a in ('dir *.* /aa /b') do (set $f=%%~na
                                              echo TRAITEMENT DE !$f!
                                              set $f=!$f:n=t!&echo !$f!
                                              set $f=!$f:x=m!&echo !$f!
                                              set $f=!$f:e=a!&echo !$f!
                                              ECHO LE NOUVEAU FICHIER CE NOMMERA !$f!
                                              REN "%%~Fa" "!$f!%%~xa"
                                              pause)






______________________________________________________
AffPng.exe , StringBetween.exe , Hex2Png.exe
Répondre en citant
Message [Résolu]Renommer des fichiers 
Salut Sachadee,

en fait je suis aussi l'auteur du topic dont tu as mis le lien mais je ne pensais pas qu'on avait le droit de donner des liens d'autres forum.
Mon sujet avait l'air d'être passé à la trappe et tu m'avais déjà bien aidé donc pour ne pas insister d'avantage et monopoliser l'intervention des "batcheurs" j'ai donc décidé de venir poster ici.

En fait je n'avais pas résolu le problème des majuscules et mon dernier code que j'ai posté ici ne marche pas du tout mais je ne trouve pas ce qui ne va pas.



Répondre en citant
Message [Résolu]Renommer des fichiers 
Voila je tes maché le travail en te faisant cette superbe fonction qui décompose un string caractères par caractère
en te permettant de faire un test "IF" pour savoir si ta lettre est MAJUSCULE OU MINUSCULE. et faire la substitution
en conséquence.

J'ai setter par défaut la longeur du string (nom de fichier dans ton cas à 20 caractères). Tu peux naturellement
l'augmenter ou la diminuer. Si dans ton nom de fichier il y a des espaces il seront remplacer par le carctères "#" qui est automatiquement
resubstitué en espace au final.

Je t'ai fait l'exemple du "a" substitué par le "t" et le
"A" substitué par le "T".

Test et retourne !

Code:

:::Par SachaDee
:::06-2013
:::www.batch.xoo.it.com
:::www.bbat.forumeiros.com

@echo off

setlocal enabledelayedexpansion enableextensions

for /f "delims=" %%a in ('dir *.* /aa /b') do (set $f=%%~na
                                               set $final=
                                               echo TRAITEMENT DE !$f!
                                               for /l %%i in (0,1,20) do (
                                                                          set char=!$f:~%%i,1!
                                                                          if "!char!"==" " set char=#
                                                                          if defined char (echo !char!

rem :::::::::::::::::::::::::::::::::::::::::::::::::::ICI TU FAIT TES SUBSTITUTION
rem :::::::::::::::::::::::::::::::::::::::::::::::::: DE CETTE MANIERE POUR TESTER LES MAJ ET MIN

                                                                          if !char!==a (set char=!char:a=t!)
                                                                          if !char!==A (set char=!char:A=T!)




rem  ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
                                                                          set $final=!$final!!char!))
                                                echo "%%~Fa" "!$final:#= !%%~xa")






______________________________________________________
AffPng.exe , StringBetween.exe , Hex2Png.exe
Répondre en citant
Message [Résolu]Renommer des fichiers 
Merci beaucoup Sachadee, ca marche du tonnerre.



Message [Résolu]Renommer des fichiers 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch