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 :

Aide sur FOR/F et envoi d'information dans un fichier


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Tofdu31
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Octobre 2016
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2016
    Messages : 93
    Par défaut Aide sur FOR/F et envoi d'information dans un fichier
    Bonjour,

    Alors, suis pas vraiment expert.

    J'ai des données dans un fichier sur chacune des lignes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ligne A
    ligne B
    ligne C
    ligne D
    ligne E
    Je suis en train de construire un batch.
    Alors voici mes tests

    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    FOR /F %%i in ('type Fichier_data.csv') do echo TOTO %%i >> final.txt
    Donc dans mon fichier final.txt, je trouve bien l'ensemble des lignes du fichier Fichier_data.csv et avec TOTO inséré devant chacune des lignes

    Maintenant, si je veux utiliser à la place une variable comme par exemple %cequejecrisavantlaligne% :

    Avant bien sur, dans mon script j'ai :
    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    set cequejecrisavantlaligne=TATA
    et je mets à la place de TOTO ma variable : %cequejecrisavantlaligne%

    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    FOR /F %%i in ('type Fichier_data.csv') do echo %cequejecrisavantlaligne% %%i >> final.txt

    ça fonctionne.

    Toutefois, si dans ma variable, je mets des caractères spéciaux, jusque là ça marche :
    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    set cequejecrisavantlaligne={"name":

    Mais si (et il me le faut) je rajoute un guillemet, là ça marche pas :
    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    set cequejecrisavantlaligne={"name":"

    Après lecture de plusieurs tuto, je n'arrive toujours pas à réussir. Comment je peux faire pour que la boucle n'interprète pas les caractères spéciaux ?

    Merci pour votre aide

    Tof

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    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 : 549
    Par défaut
    Bonjour,

    Voilà un tableau avec les caractères spéciaux et leur caractère d'échappement respectif :
    https://www.robvanderwoude.com/escapechars.php

  3. #3
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    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 218
    Par défaut
    Afin de s'éviter des problèmes avec les espacements nous préférons définir les variables comme ceci
    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    set "toto=a b c "

    Dans ton cas la valeur contient des caractères spéciaux interprétés par le batch, essaie de les échapper avec ^
    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    set "cequejecrisavantlaligne={^"name^":^""
    echo %cequejecrisavantlaligne% >test.txt

    PS : Le batch est nul pour ça, c'est bête et méchant

Discussions similaires

  1. Aide sur la methode d'insertion des données dans la base
    Par devalender dans le forum MkFramework
    Réponses: 17
    Dernier message: 17/09/2015, 12h53
  2. [Débutant] [Demande d'aide] Gestion d'information dans un fichier contenant du texte
    Par cocosimus dans le forum VB.NET
    Réponses: 3
    Dernier message: 01/02/2014, 17h05
  3. [FOR] Envoi de données dans un fichier texte
    Par malik0 dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 23/04/2013, 17h52
  4. [MySQL] Envoi d'information dans une base de donnée via formulaire
    Par Mysti¢ dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 30/03/2006, 21h35
  5. Envoi d'informations dans un sous programme
    Par Tanguy Sarela dans le forum Linux
    Réponses: 3
    Dernier message: 22/12/2005, 17h57

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