IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Renommer fichiers en fonction nom répertoire conteneur


Sujet :

Scripts/Batch

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Renommer fichiers en fonction nom répertoire conteneur
    Bonjour,

    Je cherche à créer un batch qui permet de renommer automatiquement les fichiers dans plusieurs sous répertoires avec le nom de ces derniers (1 fichier dans 1 sous répertoire).

    Je m'explique :

    J'ai un fichier toto.x dans un sous répertoire tata, un fichier tutu.x dans un sous répertoire tete etc...

    Au final je souhaiterais avoir :

    un fichier tata.x dans le sous répertoire tata, un fichier tete.x dans le sous répertoire tete etc...

    Alors autant vous dire que je suis nul en programmation, quelqu'un pourrait-il me dire si cela est compliqué à faire ?

    Bon Dieu vous le rendra au paradis si vous y aller :o)

    prodjey

  2. #2
    Membre émérite
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Points : 2 274
    Points
    2 274
    Par défaut
    salut,

    Tes sous-répertoires sont tous dans le même répertoire ou y a t'il plus d'un niveau dans l'arborescence ?

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Salut minnesota !

    Je te remercie de me répondre .

    En fait, mes sous-répertoires sont dans 1 seul répertoire :

    Ex :

    Le répertoire titi contient :

    - un sous répertoire tata contenant un fichier toto.x
    - un sous répertoire tete contenant un fichier tutu.x
    - etc ..

    Au final je souhaiterais avoir le répertoire titi qui contient :

    - un sous répertoire tata contenant un fichier tata.x
    - un sous répertoire tete contenant un fichier tete.x
    - etc..

    voili, voilou est-ce que c'est grave docteur ?

    prodjey

  4. #4
    Membre émérite
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Points : 2 274
    Points
    2 274
    Par défaut
    Rien de bien difficile, mais as-tu pris la peine de consulter la FAQ et le cours sur la ligne de commande ?

    http://windows.developpez.com/faq/batch/
    http://windows.developpez.com/cours/ligne-commande/

    Avec ce qu'il y a, t'es en mesure de faire un début de script que l'on pourra t'aider à étoffer. Enfin, voilà, il faut que tu fasses un minimum d'effort, et en général c'est payant.

  5. #5
    Membre chevronné
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Points : 1 991
    Points
    1 991
    Par défaut
    salut,

    en vbscript:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    on error resume next
     dim o:Set o=Createobject("Scripting.FileSystemObject")
     dim tonRep, Fi, Fo, Nn : tonRep="titi" ' dossier source
     dim Gf:Set Gf=o.GetFolder(tonRep)
      For Each Fo In Gf.SubFolders
          For Each Fi In Fo.Files
             Fn=o.getbasename(Fo.name)
             Nn=replace(Fi.name,o.getbasename(Fi),Fn)
             Fi.Name=Nn
          Next
      Next
    en batch c'est maximum en 3 lignes, je te laisse le soin de réflaichir après ta lecture des liens cité par minnesota

  6. #6
    Membre émérite
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Points : 2 274
    Points
    2 274
    Par défaut
    Salut I'm_HERE,

    Tu ne dors pas ?
    J'imagine que le script est déjà prêt.

  7. #7
    Membre chevronné
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Points : 1 991
    Points
    1 991
    Par défaut
    bonjour



    version PS:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     (gi titi).GetDirectories() |%{$s=$_.name;(gi $_.fullname).GetFiles()} |%{ 
         $old=$_.fullname.tostring() 
         $new=$s+$_.extension.tostring()
         ren $old $new -Whatif
      }

    Citation Envoyé par minnesota Voir le message
    Tu ne dors pas ?

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Merci à vous tous pour vos réponses !

    J'avoue que j'ai jeté un coup d'oeil aux tutoriels par respect à votre travail et comme je le craignais cela me parait trop compliqué et c'est là ou je vois les limites de mon intelligence pour une pauvre petite âme comme moi ...

    Je sais qu'on est à l'air de la domination chinoise mais comme même cela me parait trop chinois à mon gôut et rien que d'y penser j'ai mon cerveau qui a éclaté en vol, d'ailleurs il en reste quelques morceaux sur la table qu'il faudrait que je nettoie .

    De toutes les façons, ma mère m'a bien dit de me méfier des étrangers surtout ceux qui s'appellent "0" et "1" et je ne sais pas pourquoi ils ont tendance à vouloir tous se regrouper en 1001000, 00001000, 01010001, va comprendre Charlie !

    Apparemment, il n'y a pas que les voies du seigneur qui soient impenétrables, mais il y a aussi celles de l'informatique

    En définitive, je crois que je vais laissé tomber mais peut-être il y aurait-il un samaritain passant par là qui pourrait me renseigner s'il existe un petit logiciel faisant cette fonction ou s'il est possible de faire programmer cela par l'un d'entre vous moyennant quelques piecettes (je sais vous n'accepter que les grosses coupures mais c'est votre journée de BA et je n'ai que du paypal à vous proposer) car de toutes les façons toutes peines méritent salaire (c'est mon papa qui me l'a dit ).

    Pour information, j'ai déja parcouru tout le net octet par octet, je vous raconte pas le périble et là c'est l'effondrement total, pas âme qui vive d'un moindre petit logiciel qui ferait de moi un homme heureux comme dirait William Sheller donc avant de devoir me pendre haut et court, je remets donc ma vie entre vos mains (pas une mince affaire tout cela)....

    Si vous acceptez cette mission, cette bande s'auto-détruira par "[Résolu] [Batch] Renommer fichiers en fonction nom répertoire conteneur " et vous aurez le sentiment d'avoir oeuvré pour l'humanité (euh c'est mon deuxième prénom)

    prodjey

  9. #9
    Membre émérite
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Points : 2 274
    Points
    2 274
    Par défaut
    Par contre question tu te débrouilles très bien.

    Si tu lis aussi bien que tu écris, tu devrais être en mesure de me citer les deux commandes, en fait deux mots, qui permettent d'énumérer le contenu d'un répertoire et de changer le nom d'un fichier. C'est écrit bien en évidence dans le cours que j'ai pointé précédemment. Si tu cites ces deux mots, ces deux commandes, et bien tu auras ta réponse aujourd'hui.

    Pour info ce n'est pas de l'informatique, mais un simple exercice de lecture, en fait, du français. Dans ton cas, c'est loin d'être insurmontable. Si tu décides de ne pas le faire, ce sera purement un problème de volonté.

    Pour rappel
    Citation Envoyé par prodjey Voir le message
    toutes peines méritent salaire (c'est mon papa qui me l'a dit ).
    Donc, si tu fais ce travail, le script sera ton salaire et ton effort, notre rémunération.

  10. #10
    Membre chevronné
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Points : 1 991
    Points
    1 991
    Par défaut
    salut,

    le 1er script c'est du vbscript, tu dois copier-coller ce code dans un fichier texte ayant pour extension .vbs puis tu l'execute en prenant le soin de mettre le chemin de ton dossier à la place de titi

    en, ce qui concerne PS tu peux verifier s'il es installer sur ta machine en allant sur:
    démarrer >> Executer puis mets powershell si une invite s'affiche alors tu peux essayer le 2e code, en le copiant-collant dans le prompt et en changeant le chemin de ton dossier titi le -Whatif est une option qui te permettera de voir si les taitements seront bien effectués ou non tu peux par la suite l'enlever

    maintenant t'as deux scripts qui répondent à ta demande.

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Merci minnesota de ta réponse !

    A vrai dire, tu as raison c'est une question de manque de volonté surtout du à un blocage psychologique (rassure-toi même mon psy n'a rien pu faire pour moi ) et même la plus simple des choses pour toi me parait dans ce cas pour moi un mont Everest à gravir ! J'ai bien compris que tu voulais absolument faire de moi un crack du batch mais peine perdue...n'avance que celui qui veut avancer ...

    C'est pas grave j'en assume les conséquenses en me retirant non pas comme le dit Jospin de lavie politique mais de ce forum (on aura passé comme même un bon moment de causette et j'espère avoir un peu amusé la galerie car la vie est parfois trop sérieuse) et puis je n'en mourrais pas finalement parce qu'il y a des choses beaucoup plus importantes dans la vie !

    Enfin, un peu d'humour ça n'a jamais fait de mal à personne et j'espère que tu ne le prendras pas mal car il faut bien que je masque mon ignorance (eh oui on est tous l'ignorant de quelqu'un d'autre, le tout c'est de le reconnaitre ) par des pirouettes...et comme tu le dis si bien je suis plus doué pour les arts musicaux...comme quoi je n'ai pas que des défauts .

    Je te remercie comme même de m'avoir consacré un peu de temps car de nos jours, on le sait tous le temps c'est de l'argent .

    Ps : je vais comme essayer ton batch I'm_HERE (ton explication dans ton dernier post me parait plus clair pour un néophyte car avant la question était "kesako : vbscript, PS ??? ) que tu ne te sois pas remué les méninges pour moi pour rien.

    prodjey

  12. #12
    Membre chevronné
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Points : 1 991
    Points
    1 991
    Par défaut
    plus simple avec une expression de commandes NT one-line:



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for /r "titi" %a in (.) do for %i in ("%a\*") do ren "%i" "%~nxa%~xi"
    tu changes le chemin titi et tu l'execute dans une invite de commandes

    j'espère que ça t'aidera, bonne chance

  13. #13
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Merci I'm_HERE,

    Si avec cela je ne trouve pas mon bonheur, que je meurs brulé vif par les flammes de l'enfer, cela dit même pas mal car je n'ai pas peur de Satan puisqu'il n'existe pas , du moins le tout c'est de le croire hihihi !

    Tu mérites ta place au paradis, je veillerai personnellement à en faire la demande auprès du bon Dieu car c'est comme légion d'honneur seul le méritant doit se faire mérité, euh là il va vraiment falloir que j'arrête le chichon, bon le seul hic c'est qu'il faut déja que je commence

    Astalavista baby et rdv au paradis (ahahhahah) !

    prodjey

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Obtenir nom de fichier en fonction de l'URL
    Par smarties dans le forum Réseau
    Réponses: 0
    Dernier message: 02/04/2008, 19h04
  2. Réponses: 2
    Dernier message: 18/01/2008, 11h13
  3. récupération des noms de fichiers existant dans un répertoire
    Par tangjuncn dans le forum Général VBA
    Réponses: 1
    Dernier message: 06/11/2007, 20h12
  4. Récupération d'un nom de fichier et d'un répertoire
    Par laurentdepibrac dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/07/2007, 10h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo