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 :

Extraire une date dans un nom de fichier [Batch]


Sujet :

Scripts/Batch

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 39
    Points : 14
    Points
    14
    Par défaut Extraire une date dans un nom de fichier
    Bonjour,

    Comme le titre l'indique j'aimerai extraire une date dans un nom de fichier afin de pouvoir l'insérer dans un autre fichier.

    Détails:
    Le nom du fichier est (par exemple): UZEINFMET1_TR1V_200904.del.Z
    J'aimerai pouvoir extraire le 200904 et l'insérer dans un fichier.

    Quelqu'un aurait un tuyau pour pouvoir faire ceci??

    Merci d'avance.

  2. #2
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Via la fonction FOR et sa syntaxe étendue :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for /f "usebackq tokens=3 delims=_." %%i in (`echo UZEINFMET1_TR1V_200904.del.Z`) do echo %%i
    Après, remplace le nom du fichier par ce que tu veux, y compris un éventuel %%A provenant d'une boucle "for %%a in (*.z) do ...".
    Là, j'affiche la date en question, mais tu peux bien sûr en faire ce que tu veux derrière.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 39
    Points : 14
    Points
    14
    Par défaut
    Merci beaucoup pour la réponse, ça marche nikel.

    J'ai testé de faire:

    for %%A In (C:\*.Z) do for /f "usebackq tokens=3 delims=_." %%i in (%%A) do echo %%i

    Car le nom des fichier .Z est aléatoire, mais ça plante. Je dois faire une erreurdans la syntaxe

  4. #4
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Déjà, ajoute des parenthèses autour du deuxième "for", ça évite des soucis. Ensuite, il te manque le "echo" dans la commande du 2ème "for".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for %%A In (C:\*.Z) do (
       for /f "usebackq tokens=3 delims=_." %%i in (`echo %%A`) do (
          echo %%i
       )
    )
    Citation Envoyé par cycy75 Voir le message
    Car le nom des fichier .Z est aléatoire, mais ça plante. Je dois faire une erreurdans la syntaxe
    Dans le code ci-dessus, je considère le nom de fichier comme étant une suite de tokens séparés par "_" (pour le nom) OU "." (pour l'extension). Parmi les tokens possibles, je prends systématiquement le 3ème de la liste en guise de date.

    Si jamais le format de tes noms de fichiers ne respecte pas ce point, il faudra analyser chaque token possible pour voir s'il correspond à une date. C'est tout à fait faisable, bien sûr, mais beaucoup plus lourd.
    Au pire, fait un vrai "dir" sur tes fichiers et poste la liste ici.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 39
    Points : 14
    Points
    14
    Par défaut
    Merci pour ton aide.

    Cela fonctionne parfaitement.

    Les fichiers auront toujours le même nom, il n'y a que la date qui changera.
    Donc ce script fonctionne parfaitement.

    Merci encore

  6. #6
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    De rien. Un p'tit alors ?

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

Discussions similaires

  1. la date dans le nom du fichier .log
    Par zouuc dans le forum Logging
    Réponses: 5
    Dernier message: 13/02/2009, 12h10
  2. log4j date dans le nom du fichier log ?
    Par yoyo33fc dans le forum Logging
    Réponses: 9
    Dernier message: 31/10/2008, 13h42
  3. Réponses: 5
    Dernier message: 02/06/2008, 07h47
  4. lo4j : date dans le nom du fichier
    Par astrofiles dans le forum Logging
    Réponses: 2
    Dernier message: 30/05/2007, 18h01
  5. extraire une date dans un texte
    Par fbu78 dans le forum Access
    Réponses: 1
    Dernier message: 06/10/2005, 23h12

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