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 plusieurs fichiers passés en parametre [Batch]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Avatar de argoet
    Inscrit en
    Mai 2002
    Messages
    582
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 582
    Par défaut Renommer plusieurs fichiers passés en parametre

    l'unixien que je suis va péter un cable sous windows
    j'ai besoin de faire un litle script qui renomme les fichiers passés en parametre en fichier.madate.monheure.extention
    mais je me bat avec ces p****n de variable dans les ".bat"

    Voici mon code Tbatch.bat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    echo OFF
    rem ====================================================
    rem == Renomme les 1 à 9 fichiers  passés en paremetres 
    rem ==  (s'ils existent)  en nom(origine).date.time.ext(origine)
    rem ====================================================
    
    for /f "tokens=1-3 delims=/" %%f in ("%date%") do (set mydate=%%f%%g%%h)
    for /f "tokens=1-3 delims=:," %%f in ("%time%") do (set mytime=%%f%%g%%h)
    
    for %%a in (%1 %2 %3 %4 %5 %6 %7 %8 %9) do (
      if exist %%a (
         rem == recup du nom sans l'extention de %%a
         for /F %%I In ("%%a") Do Set nom=%%~nI
         rem == recup de l'extension sans le nom de %%a
         for /F %%I In ("%%a") Do Set ext=%%~xI
         echo ren %%a %nom%.%mydate%.%mytime%.%ext% 
      )
    )
    Quand je l'execute ce n'est pas du tout le resultat attendu
    je m'attendais à ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ren bb bb.23122014.174615.
    ren ii ii.23122014.174615.
    ren EN01.txt EN01.23122014.174615.txt
    ren EN141212_061609.xml EN141212_061609.23122014.174615.xml
    mais j'ai cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ren bb EN141212_061609.23122014.174615.
    ren ii EN141212_061609.23122014.174615.
    ren EN01.txt EN141212_061609.23122014.174615.
    ren EN141212_061609.xml EN141212_061609.23122014.174615.
    d'avance merci de votre aide
    @argoet

  2. #2
    Membre Expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Par défaut
    Salut,

    On va un peu simplifier et pas limiter le code à 9 fichiers. Tu peux mettre 1 fichier ou 15.
    Ensuite pas besoin de boucle FOR pour accéder au delimiters. On utilise un CALL.
    ce qui nous évite la création de variable.

    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    ::By SachaDee 2014
    echo OFF
    rem ====================================================
    rem == Renomme les X fichiers  passés en paremetres 
    rem ==  (s'ils existent)  en nom(origine).date.time.ext(origine)
    rem ====================================================
     
    for /f "tokens=1-3 delims=/" %%f in ("%date%") do (set mydate=%%f%%g%%h)
    for /f "tokens=1-3 delims=:," %%f in ("%time%") do (set mytime=%%f%%g%%h)
     
    for %%a in (%*) do call:traite "%%a"
    exit/b
     
    :traite
      if exist %1 (
         echo ren %1 %~n1.%mydate%.%mytime%%~x1 
      )

    Tu vois que le BAT n'est pas si compliqué....


  3. #3
    Membre chevronné
    Avatar de argoet
    Inscrit en
    Mai 2002
    Messages
    582
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 582
    Par défaut

    Un Grand Merci à vous sachadee.
    Joyeux Noel
    @Argoet
    [resolu]

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

Discussions similaires

  1. renommer plusieurs fichiers a la fois sous unix
    Par Carhod dans le forum Unix
    Réponses: 2
    Dernier message: 26/01/2008, 00h24
  2. FTP - VBA - Renommer plusieurs fichiers
    Par Maxi-môme dans le forum VBA Access
    Réponses: 6
    Dernier message: 06/09/2007, 16h37
  3. renommer plusieurs fichiers
    Par Aramas dans le forum VB.NET
    Réponses: 6
    Dernier message: 20/07/2007, 12h01
  4. Renommer plusieurs fichiers
    Par DIE dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 03/02/2007, 15h40
  5. (MS DOS) Renommer plusieurs fichiers
    Par Furius dans le forum Windows
    Réponses: 12
    Dernier message: 23/11/2005, 16h38

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