FORUM Tom's Hardware » Programmation » Autre » [Batch] Boucle, tri
 

[Batch] Boucle, tri

Il y a 221 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici



Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : [Batch] Boucle, tri
 
Plus d'informations

Bonjour,
Je m'initie un peu au batch de windows, et je me prends la tête avec un script de rien du tout visant à renommer un ensemble de fichiers pour que ça ressemble à:
Sujet01
Sujet02
Sujet03
Sujet04

etc.

Pour l'instant ça ressemble à ça:

Code :
  1. @ECHO OFF
  2. set a=1
  3. echo "Quel nom voulez-vous pour vos fichiers?"
  4. set /P nom=Nom:
  5. FOR %%i IN ( *.jpg ) DO REN %%i %nom%%a%.jpg
  6. set /A a=a+1
  7. @echo ON




Mais... cela ne renomme que le premier fichier dans l'ordre alphabétique, pas les autres. Je sais que ma boucle est mal faite mais j'arrive pas à trouver comment faire pour mettre l'incrémentation dedans et repartir pour prendre en compte tous les fichiers.
Et quand j'arrive à prendre tous les fichiers, c'est l'incrémentation qui foire :-(

Le 2e problème est qu'il me faut trier en entrée les fichiers par date de modification, mais j'avoue que je ne vois pas comment me servir du sort dans ma boucle, déjà que j'arrive pas à la boucler :-)

Voilà... à l'aide ;o)


Message édité par Seldon@IDN le 15-10-2007 à 16:00:50

Plus d'informations

Yes ! Ca marche enfin !

Code :
  1. @ECHO OFF
  2. set a=1
  3. echo "Quel nom voulez-vous pour les photos ?"
  4. set /P nom=Nom:
  5. echo "Combien de photos y-a-t-il ?"
  6. set /P n=Nombre:
  7. :boucle
  8. FOR /L %%i IN (1,1,%n%) DO REN *.jpg %nom%%%i.jpg
  9. @echo ON



Par contre, comment faire pour renommer suivant un certain ordre, comme celui de... la prise de vue ? -_-

zeb
Profil : Modérateur libre

(Je réponds ici au premier message)

 

Vire le @echo on de la ligne 7, il ne sert à rien ;)

 

La ligne 6 n'est pas dans la boucle. Syntaxe correcte :

Code :
  1. FOR %%i IN (*.jpg) DO (
  2.   REN %%i %nom%%a%.jpg
  3.   SET /A a=a+1
  4. )
 

Mais tu ne peux pas te servir de %a% comme ça :/
A cause de la non-"expansion retardée" de ta variable %a%.
Voir CMD /? pour plus de renseignement.

 

Pour ce qui est de l'ordre par date de modif, la commande DIR permet de le faire grâce au paramètre \o Il te reste donc à utiliser FOR /F ... (commande)

 

Enjoy!


Message édité par zeb le 15-10-2007 à 16:27:49

---------------
Règlement du forum / Règlement de Programmation / Règlement du Monde de Linux euh, n'y en a pas...
Plus d'informations

Uhla, je vais chercher ça... chaud !
Tu as une idée simple également pour pouvoir renommer avec 3 nombres les photos ?
Sinon, elles sont triées comme ceci:
1
2
..
10
11
..
2
21
22
..
3
31

etc.

zeb
Profil : Modérateur libre

Je regarde...
En passant, pour l'expansion retardée, lire SET /?


---------------
Règlement du forum / Règlement de Programmation / Règlement du Monde de Linux euh, n'y en a pas...
Plus d'informations

Là je t'avoue être un peu perdu.

J'ai essayé:

Code :
  1. @ECHO OFF
  2. set a=1
  3. echo "Quel nom voulez-vous pour les photos ?"
  4. set /P nom=Nom:
  5. echo "Combien de photos y-a-t-il ?"
  6. set /P n=Nombre:
  7. dir /O:S | FOR /L %%i IN (1,1,%n%) DO REN *.jpg %nom%%%i.jpg
  8. @echo ON



Qui ne renomme que la première, la plus petite je crois.
Avec /F, je n'ai pas compris si l'on pouvait cumuler /L.
En tout cas, en les cumulant:

Code :
  1. FOR /F dir /O:S /L %%i IN (1,1,%n%) DO REN *.jpg %nom%%%i.jpg



Ca ne fait plus rien ;o)

Seldon, un peu paumé...


Message édité par Seldon@IDN le 15-10-2007 à 16:40:59
zeb
Profil : Modérateur libre

Ah bah la soluce pour écrire sur trois chiffres est aussi dans SET /? :

Afficher pleins de 0, suivi du nombre et ne prendre que les n derniers :

SET a=2
SET b=00000000000000%a%
ECHO %b:~-3%

SET a=
SET b=00000000000000%a%
ECHO %b:~-3%

SET a=123
SET b=00000000000000%a%
ECHO %b:~-3%

SET a=3214
SET b=00000000000000%a%
ECHO %b:~-3%



Tu tâcheras d'avoir moins de 1000 photos, picétoo.


---------------
Règlement du forum / Règlement de Programmation / Règlement du Monde de Linux euh, n'y en a pas...
Plus d'informations

Mirci :D

zeb
Profil : Modérateur libre

(EDIT: A chaque fois j'ai un message de retard.)

 

Meuhhhhhhhh non.

 

Relis l'aide de FOR /F. Tu verras qu'il faut mettre la commande DIR /O.. dans les parenthèses.
Pour ton %a%, c'est comme tu en avais l'intuition SET a=2 / SET /A a=a+1 mais en utilisant l'expansion retardée. Pour ça, RTFM aux pages SET et SETLOCAL ;)


Message édité par zeb le 15-10-2007 à 16:47:03

---------------
Règlement du forum / Règlement de Programmation / Règlement du Monde de Linux euh, n'y en a pas...
Plus d'informations

Ca roule, j'vais tester tout ça ! :)

zeb
Profil : Modérateur libre

:)

Tu as remarqué, je semble avoir la solution mais je ne te donne que des pistes pour la trouver par toi-même. En plus, quand tu l'auras trouvée, j'exigerai de toi que tu nous la donnes au complet...

Je suis vraiment un enfoiré... :o


---------------
Règlement du forum / Règlement de Programmation / Règlement du Monde de Linux euh, n'y en a pas...

Aller à :
 
  FORUM Tom's Hardware » Programmation » Autre » [Batch] Boucle, tri

Annonces Google
Publicité
Actualités relatives

Un lecteur MP3 dans une boucle de ceinture

Publié le 26 June 2006

Voilà certainement l’un des baladeurs numériques les plus originaux du marché puisque la marque Egokast l’a inséré dans une boucle de ceinture.Un écran pour faire de l’animationNon seulement la Lire la suite

Numericable lance ses offres ADSL

Publié le 18 June 2008

Il y a quelques mois de cela, nous vous annoncions que le câblo-opérateur Numéricable envisageait de se lancer sur le marché de l’ADSL en utilisant le réseau Completel. C’est désormais choses faite, bien que la société ait lancé ses nouvelles offres en... Lire la suite

C’est quoi le dégroupage ?

Publié le 03 July 2004

De nos jours, les fournisseurs d’accès à Internet multiplient les offres auprès de leurs abonnés. Avec le dégroupage total et partiel, auxquels on ajoute les services de voix sur IP et de télévision sur IP, il devient de plus en plus difficile de s’y retr Lire la suite

La boucle locale radio refait parler d'elle

Publié le 05 March 2004

La norme Wimax pourrait relancer le développement de la boucle locale radio, selon ZDNet France. Ceci relance l'espoir de voir cette technologie se développer en France, alternative séduisante à l'ADSL et au câble pour les liaisons haut débit, e Lire la suite

Les derniers tests

Que choisir ? Home Cinema 5.1 ou projecteur de son ?

Publié le 25 September 2008

Faut-il craquer pour un ensemble 5.1 ou pour une barre de son ? Découvrez les forces et faiblesses comparées de chaque système. Lire la suite

Intel Core i7 (Nehalem) : une architecture signée AMD ?

Publié le 25 September 2008

Avec ses nouveaux processeurs Core i7, Intel fait évoluer les Core 2 en reprenant leur architecture, mais en lui rajoutant des technologies dont la plupart semblent avoir leur équivalent direct chez AMD. Impression ou réalité ? Lire la suite

Test du Nokia N96 : la vie sans écran tactile

Publié le 24 September 2008

Un téléphone haut de gamme peut il échapper à l'écran tactile ? Nokia a tenté le pari avec le N96. Lire la suite

Les nouveaux disques durs 1 To

Publié le 22 September 2008

Un an et demi après l'introduction du premier disque dur 1 To, les prix ont beaucoup diminué et de nouveaux modèles ont été lancés. Mais comment se comportent-ils entre eux et par rapport aux anciens ? Réponse dans ce comparatif. Lire la suite