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 :

Problème de doublon lors de la recherche de caractères [Batch]


Sujet :

Scripts/Batch

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2013
    Messages : 12
    Points : 9
    Points
    9
    Par défaut Problème de doublon lors de la recherche de caractères
    Bonjour,

    Suite à de nombreuses lectures et essais de ma part je n'arrive pas à aboutir correctement sur la fin d'un script BATCH.

    Le but premier est de supprimer les "0" qui sont en début de ligne d'une variable sans effacer ceux de fin de ligne.

    J'ai réussi à concocter quelque chose qui fonctionne mais malheureusement il y a quelques doublons dans le résultat.

    4633415230;0RNL-176460000
    4633353235;00RNL-16430000
    4633415261;RNL-1239500000
    4633415278;RNL-1551870000

    578086612;RNL-198100
    578086612;00RNL-198100

    Voilà le type de fichier en sortie que je retravaille derrière avec cela :

    Code Batch : 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
    SETLOCAL ENABLEDELAYEDEXPANSION
    	for /F "delims=" %%i in ('"type extractBIS.TXT"') DO (
    	set maligne=%%i
    	set var=!maligne!
    	set NR=!var:~0,13!
    	set str=!var:~14,3!
    	set sit=!var:~16,12!
    	set stea=!var:~15,13!
    	set rel=!var:~14,14!
    	echo !NR!;!rel!>> extractDONNEES.txt
    		if "!str!"=="00R" (
    			echo !NR!;!sit!>> extractFINAL.txt
    		) 
    		if "!str!"=="0RN" ( 
    			echo !NR!;!stea!>> extractFINAL.txt
    		) else (
    			echo !NR!;!rel!>> extractFINAL.txt
    		)
    )
    ENDLOCAL

    Si quelqu'un aurait un semblant d'idée sur la question, je suis novice sur le batch et malgré mes recherches je n'arrive pas à en venir à bout..

    Merci beaucoup

  2. #2
    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
    Voici ce que donne ton script en sortie, c'est ça que tu veux ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    4633415230;0R;L-176460000
    4633353235;00;NL-16430000
    4633415261;RN;-1239500000
    4633415278;RN;-1551870000
    578086612;RNL;198100
    578086612;00R;L-198100

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2013
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    Bonjour,

    Non le fichier de sortie est comme ci-dessous, j'avais abréger :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    RW578086657FR;RNL-13740000
    RW578086657FR;00RNL-13740000
    RW578086665FR;RNL-838250000
    RW578086674FR;RNL-1318660000
    2C14633414257;00381330180000
    2C14633414264;RNL-1336280000
    2C14633414271;RNL-1384540000
    2C14633414288;04732236880000
    2C14633414295;RNL-1316450000
    Mon but final serait qu'avec le script je supprime la totalité des zéros au début de la deuxième variable (str) comme la plupart des codes (RNL-) comme ci-dessus quand ils ne sont pas en doublons mais malheureusement ce n'est pas le seul type de code que j'obtiens dans mon fichier TXT.

    Dans l'exemple c'est bien le doublon des deux premières lignes et les zéros de la (5ème et avant dernière ligne) que je voudrais retirer sans toucher bien sûr à ceux de la fin !

  4. #4
    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
    Non le fichier de sortie est comme ci-dessous, j'avais abréger :
    Pourquoi "non" ?
    J'ai pris ton script et je confirme la sortie qui m'a été donnée

    Ce que tu nous dit c'est que tu nous a pas fournit de fichier d'entré correcte qui pourrais nous permettre de t'aider ?

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2013
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    Oui tu as tout à fait raison sur la syntaxe de ce que j'ai posté mais comme ce sont des envois postaux je ne voulais pas trop poster ça en dur voilà pourquoi j'avais abréger.

    La bonne syntaxe est sur mon deuxième post, les codes avec (RW) et (2C)

  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
    Avec ceci tu devrait arrivé à ce que tu veux

    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    @echo off
    SETLOCAL ENABLEDELAYEDEXPANSION
     
    set infile=extractBIS.TXT
    set outfile=out.txt
     
    FOR /F "delims=;- tokens=1,2,3" %%a IN (%infile%) DO (
    	FOR /f "tokens=* delims=0" %%z IN ("%%~c") DO SET "var=%%z"
    	IF "!var!"=="" SET var=0
    	IF NOT EXIST "%outfile%" (echo %%~a#%%~b#!var!>"%outfile%") else (type "%outfile%"|findstr /E /I "!var!" > nul || echo %%~a#%%~b#!var!>>"%outfile%")
    )
     
    pause

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2013
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    C'est tout bon je me suis permis de modifier un peu ton code avec ce que j'attendais :

    Etant donné que le code se compose en deux champs et non trois (RNL-*****) est bien un renseignement complet.

    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SETLOCAL ENABLEDELAYEDEXPANSION
    	set infile=extractBIS.TXT
    	set outfile=extractFINAL.txt
     
    	FOR /F "delims=; tokens=1,2" %%a IN (%infile%) DO (
    	FOR /f "tokens=* delims=0" %%z IN ("%%~b") DO SET "var=%%z"
    	IF "!var!"=="" SET var=0
    	IF NOT EXIST "%outfile%" (echo %%~a;!var!>"%outfile%") else (type "%outfile%"|findstr /E /I "!var!" > nul || echo %%~a;!var!>>"%outfile%")
    )
    ENDLOCAL

    Ensuite pour la fin et tout ses zéros je mis en place en amont une suppression de tout cela fin que le fichier arrive plutôt clean !

    Ce qui donne ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    RW578086612FR;RNL-1981 
    RW578086626FR;RNL-38111
    RW578086630FR;RNL-42933
    RW578086643FR;RNL-154161
    RW578086657FR;RNL-1374
    RW578086665FR;RNL-83825
    Un grand merci pour ton aide

  8. #8
    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 ton fichier est déjà clean tu peux modifier et quasiment enlever ceci qui servait à supprimer les 0
    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	FOR /f "tokens=* delims=0" %%z IN ("%%~b") DO SET "var=%%z"
    	IF "!var!"=="" SET var=0

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

Discussions similaires

  1. [XL-2007] Problème de doublon lors d'une recherche
    Par Breitzou dans le forum Excel
    Réponses: 2
    Dernier message: 18/02/2015, 21h04
  2. Problème d'encodage lors d'une recherche
    Par cysedbs dans le forum Langage
    Réponses: 3
    Dernier message: 05/12/2007, 19h53
  3. [Système] Problème de doublon lors d'un insert (voir fin)
    Par gregory.bts dans le forum Langage
    Réponses: 7
    Dernier message: 04/08/2007, 03h05
  4. problème de doublon lors de la validation d'un formulaire
    Par barouz dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 01/06/2007, 10h45
  5. Réponses: 1
    Dernier message: 24/08/2006, 23h35

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