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 :

lire un fichier et tester si certaines découpes de chaine son vides [Batch]


Sujet :

Scripts/Batch

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 14
    Points : 10
    Points
    10
    Par défaut lire un fichier et tester si certaines découpes de chaine son vides
    Bonjour,

    j'aimerai faire un script qui lit un fichier du type :

    \\NOMSERVEUR\redirection$\toto.tata
    \\NOMSERVEUR\redirection$\lulu.lolo
    \\NOMSERVEUR\redirection$\jimmy.janot
    \\NOMSERVEUR\redirection$\
    et qui test si la valeur prenom.nom est bien présente (exemple de la ligne 4 qui doit me retourner une erreur et terminer le programme)

    j'ai commencé ceci :

    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
    For /f "delims=" %%a In (suppression_u.txt) Do (call :_nxt1 %%b)
    goto :_nxt2
     
    echo script terminé avec succès
     
    :_nxt1
    set str=%%b
    rem le 60 en dessous est la pour dire jusqu'à la fin
    set str=%str:~26,60%
    goto:eof
     
    :_nxt2
    if %%b == "" goto fin
    )
     
    :fin
    echo erreur dans le fichier

    mais je penses que je suis loin de reussir; je me triture depuis 2 jours maintenant mais je n'y arrive pas. une aide me serai nécessaire. en vous remerciant ( l'idée sera ensuite d'y integrer un rd pour supprimer les répertoires de la variable %%a mais on verra plus tard lorsque ça fonctionnera.

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    up

  3. #3
    Membre éclairé Avatar de devilsnake88
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2013
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 453
    Points : 809
    Points
    809
    Par défaut
    Bonjour,
    Ceci est à tester avec précaution car ce code n'est pas très propre mais c'est en attendant que quelqu'un de plus qualifié te donne quelque chose de plus élaboré:

    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    @echo off & cls
    setlocal enabledelayedexpansion
     
    for /r %%a in (suppression_u.txt) do (
    	for /f "usebackq tokens=2 delims=$" %%b in (`type "%%~a"`) do (
    		if "%%b" == "\" ( 
    			echo %%b est vide
    		) else (
    			echo %%b
    		)
    	)
    )
    pause
    ________________________________________________________________
    N'oublie pas de faire une sauvegarde avant d'exécuter des scripts...
    Si j'ai ton problème, un petit fait toujours plaisir!
    ________________________________________________________________

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    Merci pour le retour. par contre dans la 2nd boucle "for" le "(`type "%%~a"`)" me retourne une erreur. je ne comprend pas très bien ce que tu as essayé de faire savoir si je peux le corriger. On dirait qu'il incremente la recherche du fichier et se met à parcours mon arborescence (repertoire) que signifie "type" dans le in du for ?

    voila le retour : Le fichier spécifié est introuvable.

    la première boucle me renvoi bien les valeurs du fichier avec le "\" devant.

    EN vous remerciant

    voici les retours :

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    C:\Temp\aaaa>setlocal enabledelayedexpansion
    
    C:\Temp\aaaa>for /R %a in (suppression.txt) do (for /F "usebackq tokens=2 delims
    =$" %b in (`type "%~a"`) do (if "%b" == "\" (echo %b est vide )  else (echo %b )
     ) )
    
    C:\Temp\aaaa>(for /F "usebackq tokens=2 delims=$" %b in (`type "C:\Temp\aaaa\sup
    pression.txt"`) do (if "%b" == "\" (echo %b est vide )  else (echo %b ) ) )
    
    C:\Temp\aaaa>(if "\toto.tata" == "\" (echo \toto.tata est vide )  else (ec
    ho \toto.tata ) )
    \toto.tata
    
    C:\Temp\aaaa>(if "\lulu.lol" == "\" (echo \lulu.lolo est vi
    de )  else (echo \lulu.lolo ) )
    \lulu.lol
    
    C:\Temp\aaaa>(if "\jimmy.janot" == "\" (echo \jimmy.janot est vide )
    else (echo \jimmy.janot ) )
    \jimmy.janot
    
    C:\Temp\aaaa>(if "\" == "\" (echo \ est vide )  else (echo \ ) )
    \ est vide
    
    C:\Temp\aaaa>(for /F "usebackq tokens=2 delims=$" %b in (`type "C:\Temp\aaaa\a\s
    uppression.txt"`) do (if "%b" == "\" (echo %b est vide )  else (echo %b ) ) )
    Le fichier spécifié est introuvable.
    
    C:\Temp\aaaa>(for /F "usebackq tokens=2 delims=$" %b in (`type "C:\Temp\aaaa\bb\
    suppression.txt"`) do (if "%b" == "\" (echo %b est vide )  else (echo %b ) ) )
    Le fichier spécifié est introuvable.
    
    C:\Temp\aaaa>(for /F "usebackq tokens=2 delims=$" %b in (`type "C:\Temp\aaaa\ccc
    \suppression.txt"`) do (if "%b" == "\" (echo %b est vide )  else (echo %b ) ) )
    
    Le fichier spécifié est introuvable.
    
    C:\Temp\aaaa>(for /F "usebackq tokens=2 delims=$" %b in (`type "C:\Temp\aaaa\ddd
    d\suppression.txt"`) do (if "%b" == "\" (echo %b est vide )  else (echo %b ) ) )
    
    Le fichier spécifié est introuvable.
    
    C:\Temp\aaaa>pause

  5. #5
    Membre éclairé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2012
    Messages
    359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 359
    Points : 738
    Points
    738
    Billets dans le blog
    2
    Par défaut
    Quelque chose comme ça peu être ?

    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    @echo off
     
    for /f "delims=" %%a in (suppression_u.txt) do (
      for /f "tokens=1-3 delims=\" %%b in ("%%~a") do (
        if "%%~d"=="" ( 
          echo la chaîne est vide
        ) else (
          echo %%d
        )
      )
    )
    pause
    Le gourou dicte la ligne (de commande) à suivre ...

    Penser à lire le Tutoriel Batch ou a consulter la FAQ Batch et ses contributions,
    ainsi que le Cour sur la ligne de commande et des scripts

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    j'essai de l'adapter à mon autre bou de code dans la journée et vous fais un retour. en vous remerciant

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    impeccable ! ça marche du tonnerre ! merci beaucoup !

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

Discussions similaires

  1. lire un fichier sauf certaines lignes
    Par xavierdestev dans le forum Débuter
    Réponses: 5
    Dernier message: 24/10/2013, 20h39
  2. Réponses: 3
    Dernier message: 30/11/2010, 21h47
  3. Lire un fichier à partir d'une certaine position
    Par GreatDeveloperOnizuka dans le forum C#
    Réponses: 1
    Dernier message: 16/06/2009, 16h48
  4. Réponses: 3
    Dernier message: 04/04/2008, 07h03
  5. Lire un fichier Texte d'1 bloc dans une chaine
    Par User dans le forum Langage
    Réponses: 6
    Dernier message: 13/09/2006, 21h56

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