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

Windows Discussion :

[batch] renommer un fichier avec la date


Sujet :

Windows

  1. #1
    Membre habitué Avatar de arcane
    Inscrit en
    Avril 2003
    Messages
    311
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 311
    Points : 178
    Points
    178
    Par défaut [batch] renommer un fichier avec la date
    Bonjour,

    j'ai trouvé plusieurs infos sur le sujet dans ce forum, mais je cale encore a un endroit.
    j'ai adapté un script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    @echo off
    SETLOCAL
    SET FICNAME=login
    FOR /F "tokens=1,2* delims=/" %%A IN ('DATE /T') DO SET FICNAME=%FICNAME%_%%C-%%B-%%A
    MOVE login.log %FICNAME%.log
    le probleme, c'est que sur windows server 2003, ce code ne marche pas, car quand je tape DATE /T,
    il me donne bien la date : 11/05/2005
    mais il doit mettre un espace apres 2005 car lorsque on affiche le fichier, on a : login_2005 -05-11.log
    et du coup la commande est incorrecte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MOVE login.log login_2005 -05-11.log
    il considere qu'il y a un parametre en trop.
    j'ai alors voulu supprimer l'espace. j'ai testé successivement ces 2 lignes, apres le MOVE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    FOR /F "tokens=1,2* delims= " %%A IN ('%FICNAME%') DO SET FICNAME=%%A%%B
    FOR /F "tokens=1,2* delims=\ " %%A IN ('%FICNAME%') DO SET FICNAME=%%A%%B
    mais ca ne fonctionne pas, il ne comprend pas la commande %FICNAME%
    (qui n'est pas une commande mais le nom du fichier)

    quelqu'un aurait une idée pour supprimer cet espace?

    Merci

  2. #2
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 778
    Points
    5 778
    Par défaut
    essaye avec des " au lieu des '
    normalement tous ce qu'il y a entre deux " est considere comme un seul parametre.

  3. #3
    Membre habitué Avatar de arcane
    Inscrit en
    Avril 2003
    Messages
    311
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 311
    Points : 178
    Points
    178
    Par défaut
    Voila, a force d'insister, j'ai trouvé une solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    @echo off 
    SETLOCAL 
    SET FICNAME=login 
    FOR /F "tokens=1,2* delims=/" %%A IN ('DATE /T') DO SET FICNAME=%FICNAME%_%%C-%%B-%%A 
    FOR /F "tokens=1,2* delims= " %%A IN ('echo %FICNAME%') DO SET FICNAME=%%A%%B
    MOVE login.log %FICNAME%.log
    Ca marche, mais par contre je ne comprends pas "tokens=1,2* delims=/"
    Ca doit découper le texte avec un délimiteur, mais c'est quoi comme langage? ce n'est pas du batch?
    et les %%A, c'est comme un pointeur?

  4. #4
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Salut,
    Citation Envoyé par arcane
    je ne comprends pas "tokens=1,2* delims=/"
    Ca doit découper le texte avec un délimiteur
    L'aide en ligne IF /?.
    delims détermine le caractère délimiteur pour parser la chaîne, date /T renvoi jj/mm/aaaa.
    tokens spécifie les élements à renvoyer, ici le premier puis le 2+la fin de la ligne donc jj et mm/aaaa.

    Citation Envoyé par arcane
    et les %%A, c'est comme un pointeur?
    C'est plus une subsitution de contenu d'une variable qu'un adressage.

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

Discussions similaires

  1. [WD10] Renommer un fichier avec la date de sa création
    Par Vinestro dans le forum WinDev
    Réponses: 2
    Dernier message: 07/08/2009, 12h56
  2. Renommer un fichier avec une date
    Par Sh4dow49 dans le forum Linux
    Réponses: 3
    Dernier message: 15/12/2008, 14h22
  3. [batch] supprimer fichier avec une date bien précise
    Par remi82 dans le forum Scripts/Batch
    Réponses: 7
    Dernier message: 14/10/2008, 12h52
  4. Renommer un fichier avec la date
    Par jnauche dans le forum VBScript
    Réponses: 2
    Dernier message: 30/09/2008, 10h45
  5. [Dates] Renommer un fichier avec la date
    Par VFone dans le forum Langage
    Réponses: 5
    Dernier message: 05/06/2008, 12h23

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