Renommer des fichiers dans un sous repertoire
Répondre à la discussion
Affichage des résultats 1 à 10 sur 10

Renommer des fichiers dans un sous repertoire



  1. #1
    invite0982a4ce

    Renommer des fichiers dans un sous repertoire


    ------

    Bonjour,
    J'ai dans un sous répertoire 2 fichiers image.pgm et info.xlm. Dans un répertoire, j'ai une 30n de ces sous répertoires qui possèdent TOUS ces 2 fichiers avec tous les même noms!
    Je voudrais donc renommer ces 2 fichiers par le nom des sous répertoires (280.0 ou 280.3 ou 280.6...jusqu'à 300.1).
    J'ai fait un fichier .bat avec une boucle mais elle coporte des erreurs que je ne touve pas. Pourriez-vous m'aider?
    Ci-dessous le .bat:
    Code:
    D:
    cd duriez\bessy\071008-bessy\stacks071008\12.37.42\
    set %n=280.0
    :boucle
    If %n<300.4
     Then
      cd n
      ren "image.pgm" %n+."pgm"
      ren "info.xml" %n+info."xlm"
      %n=n+0.3
      cd ..
      goto boucle
     Else
      goto fin
    :fin
    Merci d'avance,
    Bonne soirée.

    -----
    Dernière modification par yoda1234 ; 16/10/2008 à 18h48. Motif: Mise en place de la balise code

  2. #2
    QuébecEcho

    Re : Renommer des fichiers dans un sous repertoire

    Bonjour,
    Pourriez-vous détailler la nature des erreurs ?

    Je vois actuellement deux possibilités. L'utilisation d'une variable numérique (%n) en concaténation avec une chaine de caractères. Avez vous fait des test préliminaires avec un ECHO de la commande de renommage ?

    Ensuite il n'y a pas de validation de l'existence du répertoire avant de tenter le changement de répertoire (danger là aussi).

    Bon courage !
    André
    Sans la liberté de blâmer, il n'est point d'éloge flatteur. (Beaumarchais)

  3. #3
    invite0982a4ce

    Re : Renommer des fichiers dans un sous repertoire

    Bonjour, Voilà le message d'erreur:
    D:\Duriez\BESSY\071008-Bessy\stacks071008\12.37.42>se t n=280.0< était inattendu
    D:\Duriez\BESSY\071008-Bessy\stacks071008\12.37.42>If n<300.4
    D:\Duriez\BESSY\071008-Bessy\stacks071008\12.37.42>

    Merci.

  4. #4
    invite4ad25ccf

    Re : Renommer des fichiers dans un sous repertoire

    Je ne connais absolument pas la syntaxe des batch windows, mais il me semble que les variables sont définies par %name%.
    Du moins je me rappelle des variables %PATH%, %SYSTEM32% ...

  5. A voir en vidéo sur Futura
  6. #5
    QuébecEcho

    Re : Renommer des fichiers dans un sous repertoire

    Bonjour,
    Citation Envoyé par chcaro Voir le message
    Bonjour, Voilà le message d'erreur:
    D:\Duriez\BESSY\071008-Bessy\stacks071008\12.37.42>se t n=280.0< était inattendu
    D:\Duriez\BESSY\071008-Bessy\stacks071008\12.37.42>If n<300.4
    D:\Duriez\BESSY\071008-Bessy\stacks071008\12.37.42>
    Ouf! ça parait que ça fait des années que je n'ai pas fait de "batch file", ça aurait dû me sauter au visage.

    Il s'agit de problèmes de syntaxe.
    Une commande IF est supoposée tenir sur une seule ligne.
    Les signe plus petit "<" sert à spécifier de quel périphérique les données vont être générées.
    Le signe plus grand ">" signifie que les affichages à l'écran sont redirigés ailleurs.
    Une variable doit être initialisée par la commande SET
    etc...

    Bref il va vous falloir étudier un peu la syntaxe des "batch file".

    Bon courage !
    André
    Sans la liberté de blâmer, il n'est point d'éloge flatteur. (Beaumarchais)

  7. #6
    QuébecEcho

    Re : Renommer des fichiers dans un sous repertoire

    Re-bonjour,
    Bof! j'ai eu un peu pitié de vous. Je vous ai donc mâché l'ouvrage.

    Vous devrez créer deux fichiers .BAT Le premier prendra le nom que vous voudrez mais le second doit s'appeler SUITE.BAT.

    Copiez-collez ces instructions dans le premier fichier
    @ECHO OFF
    D:
    SET base=DURIEZ\BESSY\071008-BESSY\STACKS071008\12.37.42
    CD %base%
    FOR /D %%n IN (*.*) DO (suite.bat %base% %%n%)

    Ensuite copiez-collez ce qui suit dans le fichier SUITE.BAT
    @ECHO OFF
    SET nomA=IMAGE.PGM
    SET nomB=INFO.XML
    ECHO %1\%2
    CD %1\%2
    IF EXIST %nomA% (ECHO RENAME %nomA% %2.pgm) ELSE (ECHO %nomA% inexistant)
    IF EXIST %nomB% (ECHO RENAME %nomB% %2info.pgm) ELSE (ECHO %nomB% inexistant)
    CD..

    Les fichiers BAT sont prévus être dans le répertoire DURIEZ\BESSY\071008-BESSY\STACKS071008\12.37.42

    Faites vos test et ajustez le programme selon vos besoins.
    Lorsque les choses seront au point, allez dans SUITE.BAT et remplacez les commandes ECHO RENAME par RENAME dans les instructions IF.
    Le renommage va alors s'effectuer.

    Amicalement
    André
    Sans la liberté de blâmer, il n'est point d'éloge flatteur. (Beaumarchais)

  8. #7
    invite0982a4ce

    Re : Renommer des fichiers dans un sous repertoire

    Merci mais ça ne marche toujours pas. Maintenant il me met comme message d'erreur: "suite.bat et boucle.bat ne sont pas reconnu en tant que commande interne ou externe, un programme exécutable ou un fichier de commandes".

  9. #8
    QuébecEcho

    Re : Renommer des fichiers dans un sous repertoire

    Bonjour,
    Ah! je vois. En effet il ne s'agit pas d'un programme reconnu par Windows, il doit donc être lancé depuis l'invite de commande d'une fenêtre DOS.
    • Allez dans le menu démarrer -> exécuter et entrez cmd et faites <enter>.
    • Une fois l'invite de commande affichéee, allez vous positionner sur votre disque puis dans votre répertoire DURIEZ\BESSY\071008-BESSY\STACKS071008\12.37.42
    • Lancez boucle (Si c'est bien ainsi que vous baptisé votre programme principal)

    Tenez-moi au courant
    André
    Sans la liberté de blâmer, il n'est point d'éloge flatteur. (Beaumarchais)

  10. #9
    JPL
    Responsable des forums

    Re : Renommer des fichiers dans un sous repertoire

    Petite erreur : pour appeler un batch à partir d'un autre batch la commande est call.
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

  11. #10
    QuébecEcho

    Re : Renommer des fichiers dans un sous repertoire

    Bonojour,
    Citation Envoyé par JPL Voir le message
    Petite erreur : pour appeler un batch à partir d'un autre batch la commande est call.
    Oup! c'est bien vrai. D'ailleurs l'utilisation de CALL rend l'instruction rend inutile l'instruction CD .. à la fin de suite.bat.

    Merci bien JPL

    André
    Sans la liberté de blâmer, il n'est point d'éloge flatteur. (Beaumarchais)

Discussions similaires

  1. Lire des fichiers Post script sous vista
    Par ordage dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 05/06/2008, 07h47
  2. [C++] defnir des constantes dans plusieurs fichiers
    Par invite2c6a0bae dans le forum Logiciel - Software - Open Source
    Réponses: 7
    Dernier message: 04/02/2008, 08h01
  3. récupérer des fichiers effacés sous Vista
    Par invitee5fedd72 dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 03/02/2008, 20h17
  4. Comment intégrer des données sous Excel dans un StringGrid sous C++ Builder ?
    Par invite386d297b dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 29/05/2007, 12h56
  5. Uploader des fichiers dans un site
    Par invite61bfdc16 dans le forum Internet - Réseau - Sécurité générale
    Réponses: 2
    Dernier message: 19/08/2004, 00h38
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...