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

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Modifier extension fichiers dans arborescence

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Modifier extension fichiers dans arborescence

n°1444944
ramkin
Posté le 19-09-2006 à 22:47:41  profilanswer
 

Salut à tous,
 
Attention, pas très fort en batch....
 
J'aimerais modifier le nom de tout une série de fichiers *.sxw en *.odt. (pour ceux qui ont compris, je suis passé de OpenOffice 1.1.5 à 2.0...  ;) ).
Jusque là, je peux le faire, si tout était dans le même dossier. Mais mon problème, ce sont les sous dossiers.
 
J'avoue avoir pas mal de difficultés avec la boucle FOR (parce que je sens qu'il faut y passer...) et ses paramètres. Je sais, c'est pénible ces types qui débarquent et qui veulent qu'on leur écrive leur code, mais là après deux heures de recherches sur le forum, sur le "for /?", sur le post juste en-dessous de webding pour ceux qui suivent.. ;) (ça ressemble à ce que je veux faire mais le code m'est d'abord plutôt obscur, et puis le problème ne semble pas être l'arborescence..), et autres liens, je suis complètement paumé.
 
Donc si quelqu'un pouvait ne serait-ce que m'aiguillonner ça serait sympa, parce que je sens bien que ça ne doit pas être si compliqué que ça.
 
 :sol:

mood
Publicité
Posté le 19-09-2006 à 22:47:41  profilanswer
 

n°1444952
wackevat
Posté le 19-09-2006 à 23:17:44  profilanswer
 

Poste ton code actuel, on le corrigera ensemble ;)

n°1444979
ramkin
Posté le 20-09-2006 à 00:52:44  profilanswer
 

Salut nglechau,
 

wackevat a écrit :

Poste ton code actuel, on le corrigera ensemble ;)


 
 
 :whistle:  Si tu veux, mais mon code se résume un peu à ça en gros:
 

Citation :

ren d:\*.sxw *.odt


 
Ce qui marche très bien à la racine de D: bien-sûr, mais le truc c'est qu'il faut fouiller dans tous les dossiers, et sous-dossiers, etc...
Et là, comme je disais, point de correction de code, point de mauvaise syntaxe, juste rien..... :sweat:  Je ne sais pas comment faire une récurrence sur les dossiers.
Et j'ai du mal à démarrer une boucle FOR. Les paramètres /D, /L, /R, /F par exemple ne sont pas très clairs (je parle de l'aide FOR /?). En clair, je suis perdu, et je m'arrache les cheveux parce que je sens que ça doit tenir en une ligne...   :pfff:

n°1445060
wackevat
Posté le 20-09-2006 à 10:23:32  profilanswer
 

Si tu n'es pas obligé à passer par le batch (ou tout autre langage), plusieurs utilitaires de renommage existent :)

n°1445163
ramkin
Posté le 20-09-2006 à 11:55:23  profilanswer
 

wackevat a écrit :

Si tu n'es pas obligé à passer par le batch (ou tout autre langage), plusieurs utilitaires de renommage existent :)


 
 
Oui, je sais. Mais je n'aime pas installer des petits trucs quand je peux l'éviter. Avec un batch c'est bien plus propre. De plus j'aurais besoin de faire ça sur un réseau (donc une autre boucle..... mais celle-là je l'ai!). Et surtout j'ai vraiment envie de peaufiner mes connaissances en DOS.
 
Tu me dis ça parce que tu t'inquiètes? C'est si compliqué que ça?

n°1445512
wackevat
Posté le 20-09-2006 à 21:57:14  profilanswer
 

Non, ce n'est pas compliqué. Mais juste que tu as l'air de vraiment débuter dans la matière, vu tes difficultés de saisir l'aide (ne le prends pas mal hein ? :D )

n°1445533
ramkin
Posté le 20-09-2006 à 23:35:04  profilanswer
 

wackevat a écrit :

Non, ce n'est pas compliqué. Mais juste que tu as l'air de vraiment débuter dans la matière, vu tes difficultés de saisir l'aide (ne le prends pas mal hein ? :D )


 
Non je ne le prends pas mal nglechau, rassure toi.  :D  
 
Mais est-ce compliqué, ou long, pénible, pour toi de me l'écrire cette ligne de code par exemple? Parce que si j'ai déjà une base, je pense que je pourrais comprendre.

n°1445536
0x90
Posté le 20-09-2006 à 23:53:44  profilanswer
 

fait du vbs, ce sera sur toute les machines de ton réseau et surement plus confortable que du batch.
 
( accessoirement, quel interêt de renommer les fichiers ? )


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1445559
wackevat
Posté le 21-09-2006 à 06:36:01  profilanswer
 

ramkin a écrit :

Parce que si j'ai déjà une base, je pense que je pourrais comprendre.


Euh... justement, tout a été dit dans le topic de webding, le code y a été donné - une seule ligne suffit effectivement (avant qu'il opte pour la soluce moins pratique qui était l'activation de l'expansion retardée des variables d'environnement) ;)
 
Tu prends la même boucle, corriges l'erreur qu'il faisait et enfin modifies la commande ren pour adapter à ton cas et voilà :D

n°1446687
ramkin
Posté le 23-09-2006 à 23:41:09  profilanswer
 

Salut tous,
 
D'abord mille excuses pour le retard, mais j'ai modifié mon mail, et impossible de me connecter au forum.
 
@0x90
Je veux du batch.  :ange:  
L'intérêt de renommer des fichiers est justifié lorsque tu possèdes plus de 500 fichiers à l'extension .sxw (format OpenOffice 1.1.5), fichiers dont tu te sers constamment, que tu passes à la version 2.0 de OpenOffice au nouveau format .odt, et que tu sais qu'à chaque fois tu devras faire un Enregistrer sous..., puis supprimer le fichier .sxw
 
@nglechau
Mais justement, à propos du code de webding, celui-ci ne parcourt pas l'arborescence. J'avais bien essayé, mais la boucle ne s'effectue que dans le dossier spécifié.
J'ai continué à chercer, et ironie du sort, j'ai trouvé grâce à un certain......nglechau!  :hello:  Ici même, où tu réponds simplement qu'il faut utiliser l'option /r
 
Ahhhh, si tu m'avais dit ça dès le début....  :whistle:  
 
 
Bon, j'ai enfin ma ligne de code:

Citation :

for /r C:\temp %%a in (*.sxw) do ren %%a %%~na.odt


 
Ce code renomme tous les fichiers .sxw en .odt se trouvant dans l'arborescence c:\temp
 
Seul problème, mais de taille, les espaces dans les noms!! Les noms de fichiers avec espaces ne sont pas traités. Pire, les fichiers se trouvant dans un dossier avec un nom à espace ne sont pas traités non-plus: "La syntaxe de la commande n'est pas correcte"
 
Après plusieurs essais, j'ai donc mis des guillemets partout:

Citation :

for /r "C:\temp" %%a in (*.sxw) do ren "%%a" "%%~na.odt"


et ça semble marcher au poil.
 
C'est pas un peu bizarre ces guillemets autour des variables?  :??:  

mood
Publicité
Posté le 23-09-2006 à 23:41:09  profilanswer
 

n°1446691
0x90
Posté le 24-09-2006 à 00:05:58  profilanswer
 

Ouais, mais changer l'extention va pas changer le type du fichier, ca va avoir la gueule d'un truc propre sans l'être. Autant l'idée de batcher le boulot n'est pas mauvaise, autant renommer plutot que convertir je trouve ca douteux :/


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1446709
ramkin
Posté le 24-09-2006 à 10:10:00  profilanswer
 

0x90 a écrit :

Ouais, mais changer l'extention va pas changer le type du fichier, ca va avoir la gueule d'un truc propre sans l'être. Autant l'idée de batcher le boulot n'est pas mauvaise, autant renommer plutot que convertir je trouve ca douteux :/


 
Entièrement d'accord. Sauf qu'en lecture, il n'y aucun changement, et lorsque je les modifierai, je n'aurais pas à faire les manips citées plus haut.
 
 :sol:

n°1446878
wackevat
Posté le 24-09-2006 à 19:50:03  profilanswer
 

ramkin a écrit :

Ahhhh, si tu m'avais dit ça dès le début....  :whistle:


Bah, puisque dans le topic de Webding, j'avais recommandé la lecture de l'aide et dans celui-ci, je t'avais conseillé de corriger le topic de Webding.
 
Au début, je donnais immédiatement les soluces, mais avec le temps, je me suis rendue compte que les mêmes questions revenaient tous les jours, attendant des soluces prêtes à employer :pt1cable:  
 

ramkin a écrit :

C'est pas un peu bizarre ces guillemets autour des variables?  :??:


Au contraire, c'est tout à fait normal.
 
Les espaces servent de séparateurs entre les paramètres (d'où l'erreur que tu as rencontrée). Les guillemets évitent cela.

n°1446885
ramkin
Posté le 24-09-2006 à 19:56:21  profilanswer
 

Merci pour ton aide en tout cas.
 
 :sol:


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

  Modifier extension fichiers dans arborescence

 

Sujets relatifs
Suppression de fichiers de plus de n joursAffichage arborescence
Script batch de renommage de masse de fichiersCopier les fichiers des sous dossiers dans le dossier parent
Impression de fichiers à partir de page web[MySQL/PHP] Petit soucis de renommage de fichiers proposés en download
Probleme dans les chemins de fichiersModifier du texte sur une page avec une action en JS
Editer,modifier et supprimer des enregistrements dans datagridFichiers images internes à une solution
Plus de sujets relatifs à : Modifier extension fichiers dans arborescence


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