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 :

Bug sur script VBS


Sujet :

VBScript

  1. #1
    Nouveau membre du Club
    Bug sur script VBS
    Bonjour,
    j'ai créé un script qui lance un batch
    et lorsque je modifie le chemin d'accès cela ne fonctionne plus

    ex 1 qui fonctionne
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Option Explicit
     
    Dim WSHShell, Commande
     
    Set WSHShell = CreateObject("WScript.Shell")
    Commande = "C:\Users\xxxxxxxx\Desktop\ping.bat"
    Do While true
    	WSHShell.Run Commande
    	Wscript.sleep 30000
    loop


    ex 2 qui bug
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Option Explicit
     
    Dim WSHShell, Commande
     
    Set WSHShell = CreateObject("WScript.Shell")
    Commande = "R:\06 - INFORMATIQUE\G - PROJETS\Ping\ping.bat"
    Do While true
    	WSHShell.Run Commande
    	Wscript.sleep 30000
    loop


    Mise à part le fait que d'un coté je sois en local de l'autre via un lecteur réseau...
    j'ai ce message...


    est ce que en mode réseau cela ne fonctionne pas mon script ?

    Merci d'avance

  2. #2
    Rédacteur/Modérateur

    Salut

    Essais une de ces 2 syntaxes
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    Commande = chr(34) + "R:\06 - INFORMATIQUE\G - PROJETS\Ping\ping.bat" + chr(34)
    'ou bien
    Commande = """R:\06 - INFORMATIQUE\G - PROJETS\Ping\ping.bat"""
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.

  3. #3
    Membre régulier
    Salut,

    Ton problème me fait penser à un blocage de l'UAC (User account control)...

  4. #4
    Nouveau membre du Club
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    Commande = chr(34) + "R:\06 - INFORMATIQUE\G - PROJETS\Ping\ping.bat" + chr(34)


    cela fonctionne
    MERCI

    maintenant le soucis est que dans mon script j'ai mis une boucle
    et que à chaque fois qu'il lance le Batch cela me demande d'appuyer sur oui.... pour lancer le batch...

  5. #5
    Modérateur

    Citation Envoyé par aculy Voir le message
    maintenant le soucis est que dans mon script j'ai mis une boucle
    et que à chaque fois qu'il lance le Batch cela me demande d'appuyer sur oui.... pour lancer le batch...
    Montre la partie du code correspondant à la question
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  6. #6
    Nouveau membre du Club
    mon code n'a pas changé

    pour la partie VBS j'ai
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Option Explicit
     
    Dim WSHShell, Commande
     
    Set WSHShell = CreateObject("WScript.Shell")
     
    Commande = chr(34) + "R:\06 - INFORMATIQUE\G - PROJETS\Ping\ping.bat" + chr(34)
     
    Do While true
    	WSHShell.Run Commande
    	Wscript.sleep 30000
    loop
    ' Set WSHShell = Nothing


    et pour le batch
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      @echo off
    echo ---------------------------------------------- >> "R:\06 - INFORMATIQUE\G - PROJETS\Ping\IP_test.csv"
    echo. >> "R:\06 - INFORMATIQUE\G - PROJETS\Ping\IP_test.csv"
    echo %date% >> "R:\06 - INFORMATIQUE\G - PROJETS\Ping\IP_test.csv"
    echo %time% >> "R:\06 - INFORMATIQUE\G - PROJETS\Ping\IP_test.csv"
    ping.exe 10.33.243.160 -n 1 >> "R:\06 - INFORMATIQUE\G - PROJETS\Ping\IP_test.csv"


    environnement win 7 PRO

  7. #7
    Modérateur

    Dans le code, je ne vois pas où le mot "oui" peut être affiché.
    Cela suppose qu'il y a un bouton "Oui" sur lequel on peut appuyer avec la souris !

    Peut-être que tu veux dire qu'il te demande : "Appuyez sur une touche pour continuer" ?
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  8. #8
    Nouveau membre du Club

    pardon j'ai pas mis le screenshot....
    je lance mon script et j'ai ce message quand il doit lancer le Batch

  9. #9
    Modérateur

    Essaie de désactiver(temporairement) les alertes de sécurité et lance le script pour voir le résultat.
    Regarde ICI​ pour WIN 7 et LA​ pour Win 10
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  10. #10
    Nouveau membre du Club
    le soucis c'est un PC entreprise...
    vu que c'est pour le boulot mon script
    et que je n'ai pas la main sur mes paramètres de sécurités.....

  11. #11
    Modérateur

    D'après la capture écran, je vois que le bouton Annuler est sélectionné par défaut.
    Lance le script tel qu'il est et vérifie cette remarque.

    Appuie une fois sur la touche Tab ensuite regarde le contrôle qui a le focus, est-ce le bouton Exécuter ?

    Répète l'opération le nombre de fois nécessaires pour amener le focus sur Exécuter.
    Quel est le nombre d'appuis sur Tab ?
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  12. ###raw>post.musername###
    Membre averti
    Bonjour,

    Sinon, à quoi sert ton script ? Et pourquoi une partie en vbs et l'autre en batch ?
    Est-ce que quelquechose comme cela te conviendrait ?

    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
    Const ForReading = 1, ForWriting = 8
    Dim oFso
    Dim Fichiercsv, Message, Date_Heure, Adresse
    Set oFso = CreateObject("Scripting.FileSystemObject")
     
    Adresse = "10.33.243.160"
    Fichiercsv = "R:\06 - INFORMATIQUE\G - PROJETS\Ping\IP_test.csv"
     
    If oFso.FileExists(Fichiercsv) = False then oFso.CreateTextFile(Fichiercsv)
     
    Message = now
    Set objPing = GetObject("winmgmts:{impersonationLevel=impersonate}!\\").ExecQuery("select * from Win32_PingStatus where address = '" & Adresse & "'")
    For Each objStatus in objPing
    If objStatus.Statuscode = 0 Then
    Message = Message & ";Ping  " & adresse & ";succes;Temps de réponse: " & objStatus.ResponseTime & "ms" & vbcrlf
    Else
    Message = Message & ";Ping  " & adresse & ";echec" & vbcrlf
    End if
    Next
     
    Set myfile = oFso.OpenTextFile(Fichiercsv, ForWriting) : myfile.Write(Message) : myfile.Close


    ++
      1  0

  13. #13
    Nouveau membre du Club
    Citation Envoyé par l_autodidacte Voir le message

    Quel est le nombre d'appuis sur Tab ?
    j'ai 2 tab
    pour être sur le Executer

  14. #14
    Modérateur

    A ta place, j'opterais pour la solution donnée par Cachlab (Salut) plus simple et propre. Tu peux y ajouter d'autres données si tu veux
    Sinon, essaie d'utiliser la méthode SendKeys en espérant que le système l'accepte, car parfois il y a erreur.
    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
    Option Explicit 
    Dim WSHShell, Commande
     
    Set WSHShell = CreateObject("WScript.Shell")
     
    Commande = chr(34) + "R:\06 - INFORMATIQUE\G - PROJETS\Ping\ping.bat" + chr(34)
     
    Do While true
        WSHShell.Run Commande
        Wscript.Sleep 1000
        WSHShell.SendKeys "{TAB}" 
        WSHShell.SendKeys "{TAB}"
        Wscript.Sleep 500
        WSHShell.SendKeys "{ENTER}"
        Wscript.sleep 30000
    loop
    Si la boîte de message apparaît tardivement, essaie d'augmenter la valeur d'attente( pour Sleep)
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  15. #15
    Nouveau membre du Club
    changement de langage
    --> C#
    ici
    cela fonctionne

  16. #16
    Modérateur

    Le lien indiqué n'est pas correctement orthographié :
    Il fallait mettre : https://www.developpez.net/forums/d1.../#post10923422
    ou bien plus court : [post=10923422]ICI[/post] en ajoutant les balises [B][post=[/B]numéro du post]Nom d'affichage[/post]​ .
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr