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 chaine de caractère d'un fichier texte


Sujet :

Scripts/Batch

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2017
    Messages : 68
    Points : 37
    Points
    37
    Par défaut extraire une chaine de caractère d'un fichier texte
    Bonjour,

    j'ai un script qui se lance à une date j-1 et qui effectue une simple copie d'un fichier et qui ajoute une ligne dans un fichier texte (journal.txt) "AAAMMJJ_etat de la sauvegarde" (sauvegarde dans le sens client => serveur).
    Je souhaite désormais créer un script qui va réaliser une copie dans le sens serveur => client, qui copie la dernière date d'enregistrement qui figure dans le journal. Les enregistrements se mettant systématiquement en dernière ligne, je souhaite récupérer cette dernière au sein d'une variable :

    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    for /f "delims=" %%a in ("C:\Users\Desktop\Repertoire_test\journal.txt") do set ligne=%%a echo %ligne%

    J'ai déjà fait plein de tests et j'obtiens toujours un message du style "%%a était inattendu."

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET en devenir
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 546
    Points : 1 084
    Points
    1 084
    Par défaut
    Bonjour,

    Ta boucle est bonne, simplement dans ton cas il faut utiliser "l'expansion retardée des variables" comme ceci :

    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    setlocal enabledelayedexpansion
    for /f "delims=" %%a in ("C:\Users\Desktop\Repertoire_test\journal.txt") do set ligne=%%a
    echo !ligne!

  3. #3
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755
    Par défaut
    Pas besoin d'activer l'expansion retardée des variables puisque la variable sera évaluée en dehors du bloc for
    Par contre pour utiliser les " il faut spécifier la nouvelle sémantique avec usebackq

    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    @echo off
    for /f "usebackq delims=" %%a in ("C:\Users\Desktop\Repertoire_test\journal.txt") do set ligne=%%~a
    echo %ligne%
    pause

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET en devenir
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 546
    Points : 1 084
    Points
    1 084
    Par défaut
    Bien vu, je crois que j'ai un besoin urgent de vacances !

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2017
    Messages : 68
    Points : 37
    Points
    37
    Par défaut Galewe
    et bien merci pour les réponses ,
    J'ai tenté en apportant les modifications mais rien n'y fait je me retrouve toujours avec le message d'erreur
    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    %%a était inattendu.
    echo %ligne%
    %ligne%
    pause

    comme si la variable ligne n'était pas définie :/

    je précise mon fichier texte n'est pas vide ^^, je n'ai pas mis d'espace lorsque je défini ma variable. je comprend pas

  6. #6
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755
    Par défaut
    Si tu test en ligne de commande tu doit simplement utiliser un %a

Discussions similaires

  1. Réponses: 5
    Dernier message: 07/12/2011, 14h22
  2. Réponses: 3
    Dernier message: 25/08/2011, 10h26
  3. Réponses: 2
    Dernier message: 13/02/2011, 10h08
  4. Remplacer une chaine de caractère dans un fichier texte.
    Par Empty_body dans le forum VBA Access
    Réponses: 1
    Dernier message: 19/01/2008, 11h16
  5. Réponses: 3
    Dernier message: 25/07/2006, 08h40

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