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

VBScript Discussion :

Passage de variable d'un fichier bat vers une fichier VBS


Sujet :

VBScript

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Passage de variable d'un fichier bat vers une fichier VBS
    Bonjour,
    J'ai défini des variables dans un fichier bat, puis j'appelle mon script VBS en lui affectant ces variables pour pouvoir faire mon traitement.

    Comment dois-je faire pour passer mes variables et les récupérer dans mon VBS ?

    Voici mon fichier batch

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ':variables
    set FichierSource=c:\temp\tnsnames.ora
    set FichierDest=c:\temp\tnsnames.txt
    set NomValeur=CODR
     
    ':appel du script vbs
    "C:\Applis Packagees\script\Supprime_ligne_fichier2.vbs" /%FichierSource% /%FichierDest% /%NomValeur%
    Ci-dessous le contenu du
    Code VBS : 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
    Sub supprimeligne (FichierSource, FichierDest, NomValeur)
     
    Const ForReading = 1, ForWriting = 2, ForAppending = 8
    Dim fichier_lecture_1, fichier_lecture_2, fichier_ecriture_1, fichier_ecriture_2
    Dim fso, fso1
    Dim compteur
    Dim chaine, machaine
     
    fichier_lecture_1 = WScript.Arguments(0)
    fichier_ecriture_1 = WScript.Arguments(1)
    mot_cherche = WScript.Arguments(3)
    compteur = 0
     
    Set fso = CreateObject("Scripting.FileSystemObject") 
    Set fso1 = CreateObject("Scripting.FileSystemObject") 
    set fichier_lecture_2 = fso.opentextfile(fichier_lecture_1, 1, true)
    set fichier_ecriture_2 = fso1.opentextfile(fichier_ecriture_1, 2, true)
     
    ' Copie ligne à ligne du fichier source sans la ligne contenant le mot recherche vers un fichier destination
    do until fichier_lecture_2.atendofstream 
      chaine = fichier_lecture_2.readline()
      machaine = chaine  
      if instr(1, chaine, mot_cherche) > 0 then
         compteur = compteur + 1
    	 machaine = fichier_lecture_2.readline()
      end if
      fichier_ecriture_2.writeline machaine
    loop
     
    fichier_lecture_2.close
    fichier_ecriture_2.close
     
    ' Suppression du fichier source puis renommage du fichier destination avec le nom du fichier origine
    fso.deletefile fichier_lecture_1
    fso.movefile fichier_ecriture_1, fichier_lecture_1
     
    set fichier_lecture_2 = nothing
    set fso = nothing 
    set fichier_ecriture_2 = nothing
    set fso1 = nothing 
     
    wscript.echo "mot trouvé " & compteur & " fois !!"
    end sub
    Par avance, merci de votre aide.

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par bbil Voir le message

  3. #3
    Candidat au Club
    Inscrit en
    Mars 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Tous ces / sont des tests effectué pour essayer de faire comprendre à mon script vbs qu'il doit prendre les variable que j'ai défini dans mon batch. Pour info, j'ai essayer sans les / mais cela ne fonctionne pas non plus

    Je suis bien conscient que j'ai une anomalie dans la syntaxe que se soit au niveau du batch et/ou du vbs. Sinon je ne serais pas venu poser ma question

    Alors ma question est simple que dois je faire pour récupérer mes variable du batch dans mon script vbs ?

    Par avance, merci

  4. #4
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par kingseb Voir le message
    ...
    Alors ma question est simple que dois je faire pour récupérer mes variable du batch dans mon script vbs ?
    ...
    ta lecture des arguments devrait fonctionner ... qu'est ce qui te dit que cela ne fonctionne pas ..?

    un message d'erreur ?

    ne peu-tu pas afficher dans le VBS ces arguments histoire de contrôler ...

    voir :
    Citation Envoyé par beandev Voir le message
    ....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Set objArgs = WScript.Arguments
    For I = 0 to objArgs.Count - 1 
    WScript.Echo objArgs(I) 
    Next
    ...

  5. #5
    Candidat au Club
    Inscrit en
    Mars 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Non justement je n'ai aucun message d'erreur.

    Je sais que mon script vbs fonctionne lorsque je mets en dur mes variables sans les lignes "sub" et "end sub" bien sûr. En plus, à la fin il m'affiche qu'il a trouvé x fois la valeur ou 0 fois (si pas trouvé la valeur) que je souhaite éliminer.

    Ce qui me porte à croire que les variables ne sont pas prises en compte dans mon script vbs ; c'est le fait que je n'est aucun affichage à la fin lde mon script.

    Là c'est le weekend et je fais une pause jusqu'à Lundi. Et je ferai des tests avec ta suggestion : à savoir afficher mes arguments pour voir ce que cela donne.

    A suivre.....

  6. #6
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par kingseb Voir le message
    ....Je sais que mon script vbs fonctionne lorsque je mets en dur mes variables sans les lignes "sub" et "end sub" bien sûr. En plus, à la fin il m'affiche qu'il a trouvé x fois la valeur ou 0 fois (si pas trouvé la valeur) que je souhaite éliminer....
    et pourquoi tu as rajouté ces lignes sub et endsub ??? si tu créé une procédure il faut ensuite qu'elle soit appelée quelque part !

  7. #7
    Candidat au Club
    Inscrit en
    Mars 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    En effet, ta remarque est judicieuse mais cela fait tres longtemps que je n'avais pas fait de programmation. J'ai donc perdu certains de mes reflexes.

    Pour en revenir à mon passage de variables et/ou paramètres de Batch DOS vers mon script VBS, j'ai enfin trouvé la solution en ayant mieux éplucher le Forum.

    Voici le code que j'utilise dans mon Bat

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    :variables
    set FichierSource=c:\temp\tnsnames.ora
    set FichierDest=c:\temp\tnsnames.txt
    set NomValeur=CODR
     
    :appel du script vbs
    "C:\Applis Packagees\script\Supprime_ligne_fichier2.vbs" %FichierSource% %FichierDest% %NomValeur%
    Puis voici mon script VBS qui receptionne mes variables et/ou paramètres
    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
     
    Const ForReading = 1, ForWriting = 2, ForAppending = 8
    Dim fichier_lecture_1, fichier_lecture_2, fichier_ecriture_1, fichier_ecriture_2
    Dim fso, fso1
    Dim compteur
    Dim chaine, machaine
     
    set args = WScript.Arguments
    fichier_lecture_1 = args(0)
    fichier_ecriture_1 = args(1)
    mot_cherche = args(2)
    compteur = 0
     
    Set fso = CreateObject("Scripting.FileSystemObject") 
    Set fso1 = CreateObject("Scripting.FileSystemObject") 
    set fichier_lecture_2 = fso.opentextfile(fichier_lecture_1, 1, true)
    set fichier_ecriture_2 = fso1.opentextfile(fichier_ecriture_1, 2, true)
     
    ' Copie ligne à ligne du fichier source sans la ligne contenant le mot recherche vers un fichier destination
    do until fichier_lecture_2.atendofstream 
      chaine = fichier_lecture_2.readline()
      machaine = chaine  
      if instr(1, chaine, mot_cherche) > 0 then
         compteur = compteur + 1
    	 machaine = fichier_lecture_2.readline()
      end if
      fichier_ecriture_2.writeline machaine
    loop
     
    fichier_lecture_2.close
    fichier_ecriture_2.close
     
    ' Suppression du fichier source puis renommage du fichier destination avec le nom du fichier origine
    fso.deletefile fichier_lecture_1
    fso.movefile fichier_ecriture_1, fichier_lecture_1
     
    set fichier_lecture_2 = nothing
    set fso = nothing 
    set fichier_ecriture_2 = nothing
    set fso1 = nothing 
     
    ' la ligne suivante affiche le nombre de fois qu'il a trouve la variable y compris si elle n'existe pas
    wscript.echo "mot trouvé " & compteur & " fois !!"
    Donc du coup, je peux mettre un résolu sur mon problème.

    Merci pour ton aide

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

Discussions similaires

  1. [Batch] Rediriger le resultat d'un fichier.bat vers un fichier.txt
    Par 4Tune dans le forum Scripts/Batch
    Réponses: 7
    Dernier message: 04/06/2013, 16h20
  2. Réponses: 22
    Dernier message: 02/07/2009, 17h43
  3. transfert données fichier .bat vers fichier .xls
    Par majothi dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/04/2009, 06h35
  4. Envoyer la valeur d'une variable de ma fonction JS vers un fichier PHP
    Par wperes dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 18/10/2008, 21h07
  5. Importation de fichier CSV vers une base Interbase
    Par PrinceMaster77 dans le forum ASP
    Réponses: 3
    Dernier message: 15/03/2005, 15h18

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