Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3093 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [BATCH] Pb numérotation de fichiers

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[BATCH] Pb numérotation de fichiers

n°2259108
Brad Pitt
I want to believe
Posté le 29-05-2015 à 21:35:09  profilanswer
 

Bonjour,
 
j'ai ce petit script qui fonctionne très bien pour renommer les fichiers dans un répertoire
 

Code :
  1. @echo off & color 0A
  2. set VrNvNom=NomFic
  3. set compte=0
  4. for %%i in (*.xxx) do set VrChmFch=%%i& set VrExtnFch=%%~xi& call :renmFch
  5. goto finRenmFch
  6. :renmFch
  7. set /a compte=%compte%+1
  8. ren "%VrChmFch%" "%VrNvNom%%compte%%VrExtnFch%"
  9. goto :eof
  10. :finRenmFch
  11. pause>nul


 
Mon problème c'est que la numérotation des fichiers commence à 1. Du coup, dès que le nombre de fichier dépasse 10, l'ordre des fichiers n'est plus bon :
 
Fic1
Fic10
Fic11
Fic2
 
Vous voyez le truc. Il y aurait moyen que la numérotation commence à 01 ou 001 ?
 
Merci  :hello:


---------------
Dieu se rit des hommes qui déplorent les effets dont ils chérissent les causes. J.-B. Bossuet
mood
Publicité
Posté le 29-05-2015 à 21:35:09  profilanswer
 

n°2259131
par l'anne​au de l'ia
word master
Posté le 30-05-2015 à 12:50:44  profilanswer
 

L'ordre des fichiers sera le même avec un ou deux zero précédants le significatif.C'est l'ordre lexicographique.
Pour faire ce que tu veux je crois que tu 'a pas le choix, c'est de numéroter les fichier avec un binaire, mais la c'est moins lisible.
Une autre soluce c'estde remplacer les chiffre par des lettres, mais c'est encore pas pareil.


Message édité par par l'anneau de l'ia le 30-05-2015 à 12:51:13

---------------
Toute expression prend un sens spirituel qui nous influence dans notre quête de l'Homme.
n°2259133
par l'anne​au de l'ia
word master
Posté le 30-05-2015 à 13:04:53  profilanswer
 

Ah peut-être ça marche en fait ton truc.
Essais, simplement, je suis pas sur Windows pour tester là, mais de d'initialiser compteur à 0000.


---------------
Toute expression prend un sens spirituel qui nous influence dans notre quête de l'Homme.
n°2259134
rat de com​bat
attention rongeur méchant!
Posté le 30-05-2015 à 13:09:19  profilanswer
 

J'allais dire je connais le problème et avec des zéros ça marche (mais ne me demandez pas comment modifier le script). Avant de poster je voulais quand même revérifier, je crée donc un dossier et fic1-fic13 sauf que... l'ordre est correct!!?!
 
fic1
fic2
fic3
...
fic10
fic11
fic13
 
Heu... Je comprends pas là... Il y a peut-être un endroit où on peut modifier le réglage par défaut?

n°2259141
gilou
Modérateur
Modzilla
Posté le 30-05-2015 à 15:15:31  profilanswer
 

Un coup de google donne tout de suite des solutions: http://www.robvanderwoude.com/battech_leadingzero.php
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2259149
par l'anne​au de l'ia
word master
Posté le 30-05-2015 à 19:37:37  profilanswer
 

rat de combat a écrit :

J'allais dire je connais le problème et avec des zéros ça marche (mais ne me demandez pas comment modifier le script). Avant de poster je voulais quand même revérifier, je crée donc un dossier et fic1-fic13 sauf que... l'ordre est correct!!?!
 
fic1
fic2
fic3
...
fic10
fic11
fic13
 
Heu... Je comprends pas là... Il y a peut-être un endroit où on peut modifier le réglage par défaut?


 
 
Peut-être ! https://support.microsoft.com/en-us/kb/319827


---------------
Toute expression prend un sens spirituel qui nous influence dans notre quête de l'Homme.
n°2259152
Brad Pitt
I want to believe
Posté le 30-05-2015 à 20:29:39  profilanswer
 

rat de combat a écrit :

J'allais dire je connais le problème et avec des zéros ça marche (mais ne me demandez pas comment modifier le script). Avant de poster je voulais quand même revérifier, je crée donc un dossier et fic1-fic13 sauf que... l'ordre est correct!!?!

 

fic1
fic2
fic3
...
fic10
fic11
fic13

 

Heu... Je comprends pas là... Il y a peut-être un endroit où on peut modifier le réglage par défaut?


Oui, au moment où tu exécutes le script, ça se met dans l'ordre, mais si tu fais un refresh de ton dossier, l'ordre va changer ;)

 

edit :

 

Après avoir lu ça

  

Je me dis que ça a peut-être marché et que je me fais des noeuds au cerveau pour rien [:tinostar]

 

Merci pour vos réponses :jap:

 

@gilou : je suis pas une truffe en anglais mais là le langage tech, j'ai pas tout suivi.

 

Message cité 1 fois
Message édité par Brad Pitt le 30-05-2015 à 20:33:23

---------------
Dieu se rit des hommes qui déplorent les effets dont ils chérissent les causes. J.-B. Bossuet
n°2259164
rat de com​bat
attention rongeur méchant!
Posté le 30-05-2015 à 23:46:12  profilanswer
 


Merci, je regarderai ça demain la tête reposée.

n°2259173
gilou
Modérateur
Modzilla
Posté le 31-05-2015 à 14:14:24  profilanswer
 

Brad Pitt a écrit :

@gilou : je suis pas une truffe en anglais mais là le langage tech, j'ai pas tout suivi.


L'endroit ou tu fabriques tes numéros est le suivant:
set /a compte=%compte%+1
Donc tu peux essayer de remplacer cette ligne par
set /a compte=%compte%+1
set compte=0%compte%
set compte=%compte:~-2%
et ça devrait coller si tu n'as pas 100 fichiers ou plus.
 
set compte=0%compte% ça rajoute un zéro devant.
set compte=%compte:~-2% ça tronque à deux chiffres
 
Bon, faut aussi remplacer  
for %%i in (*.xxx) do set VrChmFch=%%i& set VrExtnFch=%%~xi& call :renmFch
par
for /f "delims=" %%i in ('DIR /a-d /b *.xxx') do set VrChmFch=%%i& set VrExtnFch=%%~xi& call :renmFch
parce que (Merci MSDOS) il récupère le premier fichier modifié et comme il a toujours l'extension xxx, il lui ré-applique le script  (un bug connu de ce genre de trucs en DOS: je teste chez moi avec a.xxx, b.xxx c.xx et ça fait ceci sinon: a.xxx -> NomFic01.xxx, b.xxx -> NomFic02.xxx, c.xxx -> NomFic03.xxx et en 4e, NomFic01.xxx -> NomFic04.xxx et ça s'arrète, donc au final j'ai NomFic02.xxx, NomFic03.xxx, NomFic04.xxx au lieu de NomFic01.xxx, NomFic02.xxx, NomFic03.xxx.)
Le for /f "delims=" %%i in ('DIR /a-d /b *.xxx') do ... est un truc connu qui permet de ne processer qu'une fois les noms de fichier lorsque les noms de fichiers en sortie remplissent les critères de sélection des noms de fichiers en entrée.
 
au final:

Citation :

@echo off & color 0A
set VrNvNom=NomFic
set compte=0
for /f "delims=" %%i in ('DIR /a-d /b *.xxx') do set VrChmFch=%%i& set VrExtnFch=%%~xi& call :renmFch
goto finRenmFch
:renmFch
set /a compte=%compte%+1
set compte=0%compte%
set compte=%compte:~-2%
ren "%VrChmFch%" "%VrNvNom%%compte%%VrExtnFch%"
goto :eof
:finRenmFch
pause>nul


Si tu as plus de 100 fichiers et moins de 1000, il faut remplacer
set compte=0%compte%  
set compte=%compte:~-2%
par
set compte=00%compte%
set compte=%compte:~-3%
 
A+,


Message édité par gilou le 31-05-2015 à 14:27:39

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2259174
Brad Pitt
I want to believe
Posté le 31-05-2015 à 15:45:12  profilanswer
 

OK, merci bien :d
 
 
Ma soluce temporaire à l'arrache avait été de :
- claquer une première fois mon script
- déplacer les fichiers ayant un n° supérieur à 10 temporairement dans un autre rép
- modifier le script en mettant "set VrNvNom=NomFic0" à la place de "set VrNvNom=NomFic"
- claquer le script, comme ça mes 9 fichiers sont rename de 01 à 09
- rapatrier les autres fichiers
 
Bon je testerai celui de Gilou et si ça fonctionne ça sera quand même plus pratique :d


---------------
Dieu se rit des hommes qui déplorent les effets dont ils chérissent les causes. J.-B. Bossuet

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [BATCH] Pb numérotation de fichiers

 

Sujets relatifs
Exception de sécurité tout en accédant à des données de fichiers XML (fichiers temporaires Tomcat
VBA : Compter le nombre de fichiers PDF dans des sous-dossiersfichiers css et html
Copie coller avec VBA deux fichiers différents[RESOLU] Batch - copier des parties d'un fichier texte
Excel: copie depuis fichiers multiples vers un classeur de statsSuppression des fichiers Thumbs avec php
[Excel] Macro copie de fichiers .tsvAide:extraire un groupe de données depuis un groupe de fichiers
Plus de sujets relatifs à : [BATCH] Pb numérotation de fichiers


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR