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

Windows Discussion :

besoin d'aide pour script DOS


Sujet :

Windows

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13
    Points : 7
    Points
    7
    Par défaut besoin d'aide pour script DOS
    Bonjour à tous. Voila dans le cadre d'un projet je doit réaliser certains scripts dont deux en DOS. Le 1er que voila:

    - script me permettant de redirigé le contenu d'un fichier csv vers un autre
    @echo off
    cls
    for /F "delims=" %%i in (C:\projet\creation.csv) do (
    echo %%i | find "%%i" >> C:\projet\globaluser.csv
    )

    Où mes fichiers csv sont de la forme (pour le fichier creation.csv):
    vador,dark,vadark,starwars
    kenoby,obiwan,obiken,jediknight
    skywalker,anakin,anasky,obscur

    Jusqu'ici tout va bien mais pour le 2è script il faut que je puisse supprimer une de ces ligne dans le fichier globaluser.csv précédamment créer à partir d'un autre fichier csv tel que celui-ci (suppression.csv):
    kenoby,obiwan,obiken,jediknight

    Il faut donc que je tienne compte des délimiteurs mais je n'ai aucune idée de comment allez chercher cette meme ligne dans mon fichier csv et ainsi la supprimer.
    Bref je suis pas gater car le DOS c'est pas ma tasse de thé, sa aurait été en shell je dis pas, je l'aurais aussitot mais la le DOS m'est imposé et je ne sais comment faire.

    Si vous avez une explication à me donner pour m'aiguiller je vous remercie d'avance.

  2. #2
    Membre émérite Avatar de Drizzt [Drone38]
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2004
    Messages
    1 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 001
    Points : 2 453
    Points
    2 453
    Par défaut
    Salut,

    Deja pense aux balises codes pour aider à la lecture de ton code.

    Pour ton premier script c'est la grosse bertha pour écraser une mouche,
    un simple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    type fichier1.cvs > fichier2.cvs
    sera amplement suffisant.

    voir

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    copy fichier1.cvs fichier2.cvs

    Pour ton second script il faut que tu reconstruises un autre fichier au fur et à mesure. Tu ne peux pas directement supprimer une ligne en batch.

    Dans ton for qui parcours ton fichier ligne par ligne tu tests le resultat de ton find de la ligne courante dans ton fichier supprimer.cvs.
    Si le résultat est vide tu ecris la ligne dans le fichier cible.

    ++
    Je ne réponds pas aux questions techniques par MP, le forum est là pour cela.

    La crypto c'est comme les flambys, une fois que tu as trouvé la languette tu as juste à tirer pour tout faire tomber.

    (\ _ /)
    (='.'=)
    Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    Merci beaucoup de ton aide parce que je suis novice dans ce domaine j'aime pa du tout sa mais jy suis obligé.
    Encore merci

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    J'ai tester ce que tu m'avait dis c'est à dire de tester le resultat du find dans ma boucle for et j'ai encore un soucis.
    Donc pour reprendre j'ai mon fichier globaluser.csv:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    vador,dark,vadark,starwars
    kenoby,obiwan,obiken,jediknight
    skywalker,anakin,anasky,obscur
    senateur,palpatine,sidious,empereur
    sith,maul,masith,darkmaul
    master,yoda,yomast,boulverte
    Et mon fichier suppressionuser.csv:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    vador,dark,vadark,starwars
    A partir de la j'éxécute mon script suppressionuser.cmd:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for /F "delims=" %%i in (c:\projet\suppression.csv) do (
    	find /V "%%i" c:\projet\globaluser.csv > c:\projet\globaluser2.csv
    Et c'est la que j'ai un souci car voila le resultat dans mon fichier globaluser2.csv:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ---------- C:\PROJET\GLOBALUSER.CSV
    
    kenoby,obiwan,obiken,jediknight
    skywalker,anakin,anasky,obscur
    senateur,palpatine,sidious,empereur
    sith,maul,masith,darkmaul
    master,yoda,yomast,boulverte
    Donc il me supprime bien la ligne que je voulais mais mon problème est qu'il me retourne le chemin de mon fichier d'origine dans le fichier cible que je viens de créer avec ma redirection.

    Et j'ai un autre soucis qui est si je rajoute un ligne dans mon fichier suppresion.csv comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    vador,dark,vadark,starwars
    kenoby,obiwan,obiken,jediknight
    voila ce qu'il me retourne dans mon fichier globaluser2.csv:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ---------- C:\PROJET\GLOBALUSER.CSV
    
    kenoby,obiwan,obiken,jediknight
    skywalker,anakin,anasky,obscur
    senateur,palpatine,sidious,empereur
    sith,maul,masith,darkmaul
    master,yoda,yomast,boulverte
    Il me retourne toujours le chemin du fichier d'origine mais aussi, il ne me supprime qu'une seule ligne sur les deux que je voulais supprimer et je ne vois pa du tout pourquoi.
    Si vous pouviez m'indiquer l'erreur que je fais dans ma boucle for car pour moi ces deux lignes devrait etre stocker dans ma variable et la apparament non.
    En vous remerciant d'avance.

  5. #5
    Membre émérite Avatar de Drizzt [Drone38]
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2004
    Messages
    1 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 001
    Points : 2 453
    Points
    2 453
    Par défaut
    Bonjour,

    C'est le find qui ajoute tout seul le nom du fichier source.

    De plus dans ta boucle, tu diriges directement le contenu du find dans le fichier cible. Et tu fais cela à chaque fois. Ce qui fait que tu ne pourras jamais avoir plus d'une ligne supprimée.

    Voila une solution à ton problème

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    @echo off
    del globaluser2.csv
    for /F "delims=" %%i in (globaluser.csv) do (
        for /F "usebackq tokens=2 delims=:" %%a in (`find /C ^"%%i^" supprimer.csv`) do (
            if "%%a"==" 0" (echo %%i >> globaluser2.csv)
        )
    )
    ++
    Je ne réponds pas aux questions techniques par MP, le forum est là pour cela.

    La crypto c'est comme les flambys, une fois que tu as trouvé la languette tu as juste à tirer pour tout faire tomber.

    (\ _ /)
    (='.'=)
    Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant

Discussions similaires

  1. Besoin d'aide pour scripts basiques
    Par Jareid dans le forum VBScript
    Réponses: 3
    Dernier message: 07/08/2013, 10h59
  2. Besoin d'aide pour script bash : amélioration
    Par stabo dans le forum Shell et commandes GNU
    Réponses: 11
    Dernier message: 25/05/2012, 13h31
  3. [MySQL] besoin d'aide pour script statistique
    Par samspitz dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 17/10/2008, 16h32
  4. Besoin d'aide pour script en shell pour un novice
    Par king_neo2001 dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 01/06/2007, 16h18
  5. [mIRC] besoin d'aide pour scripting
    Par emile13 dans le forum IRC / mIRC
    Réponses: 5
    Dernier message: 03/03/2007, 00h05

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