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 :

[VBS] Tester plusieurs répertoire avec un seul If


Sujet :

VBScript

  1. #21
    Inactif
    Inscrit en
    Janvier 2006
    Messages
    202
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 202
    Points : 70
    Points
    70
    Par défaut
    Bonjour bbil, s'est pour créer un vbsqui va tester certaines applications pour voir si elle sont installer, j'aurai besoin d'un script qui liste les application installer dans un seul MsgBox, si s'est possible.

  2. #22
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Hello,

    Déjà, tu as une erreur dans tes déclarations. J'ai modifié et là, l'exécution ne pose plus de pb... Rassure-toi, le problème est plus loin, il ne trouve pas les répertoires... mais déjà on va jusqu'au bout sans erreur...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dim i
    dim FilePath(10)
    Pour les répertoires ? Je cherche...

    A+

  3. #23
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Voilà pour les répertoires
    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
    dim i   'Tout d'abord tu met le chemin de tes fichier dans un tableau. 
       dim FilePath(10) 'as string    'Ceci te permet d'avoir 10 fichiers mais tu peut redimensionner ton tableau avec l'instruction "ReDim preserve" si elle existe en vbs 
       FilePath(1)="D:\xls\" 
       FilePath(2)="C:\Program Files\"
       FilePath(3)="C:\Program Files\Microsoft Office\"
       FilePath(4)="C:\Program Files\Creative\"
       FilePath(5)="C:\Program Files\Microsoft Office\Office\"
       FilePath(6)="C:\Program Files\Microsoft Office\Office\Gestionnaire Office\"
       FilePath(7)="C:\WINDOWS\SYSTEM32\"
       FilePath(8)="C:\WINDOWS\SYSTEM\"
       FilePath(9)="C:\WINDOWS\Nimporte quoi\"
       FilePath(10)="C:\WINDOWS\Coucou\"
     
     
       'Et maintenant tu peut commencer a chercher tes fichiers 
     
       Set objFSO = CreateObject("Scripting.FileSystemObject") 
       i=1 
     
       'Premiere solution : avec le "while" 
       while i<=10 
             If objFSO.FolderExists(FilePath(i)) Then 
                   Wscript.Echo "Le répertoire " & FilePath(i) & " exite." 
             Else 
                   Wscript.Echo "Le répertoire " & FilePath(i) & " n'exite pas." 
             End If 
     
             i=i+1 
       wend
    Tu dis

    A+

  4. #24
    Inactif
    Inscrit en
    Janvier 2006
    Messages
    202
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 202
    Points : 70
    Points
    70
    Par défaut
    Merci beaucoup ouskel'n'or sa marche déjà beaucoup mieux, cepandant il reste un trcu, les résultat s'affiche dans des msgbox diférenet les un derière les autresn je voudrai que tout soit afficher dans un seul msgbox.

  5. #25
    Inactif
    Inscrit en
    Janvier 2006
    Messages
    202
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 202
    Points : 70
    Points
    70
    Par défaut
    Dans le vbs vous dite que je peut redimentionné le tableau avec ReDim preserve, vous voulez dire que je peut le redimentionné dynamiquement ?

  6. #26
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    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
    dim i   'Tout d'abord tu met le chemin de tes fichier dans un tableau. 
    dim msg1, msg2
       dim FilePath(10) 'as string    'Ceci te permet d'avoir 10 fichiers mais tu peut redimensionner ton tableau avec l'instruction "ReDim" 
       FilePath(1)="D:\xls\" 
       FilePath(2)="C:\Program Files\"
       FilePath(3)="C:\Program Files\Microsoft Office\"
       FilePath(4)="C:\Program Files\Creative\"
       FilePath(5)="C:\Program Files\Microsoft Office\Office\"
       FilePath(6)="C:\Program Files\Microsoft Office\Office\Gestionnaire Office\"
       FilePath(7)="C:\WINDOWS\SYSTEM32\"
       FilePath(8)="C:\WINDOWS\SYSTEM\"
       FilePath(9)="C:\WINDOWS\Nimporte quoi\"
       FilePath(10)="C:\WINDOWS\Coucou\"
     
     
       'Et maintenant tu peut commencer a chercher tes fichiers 
     
       Set objFSO = CreateObject("Scripting.FileSystemObject") 
       i=1 
     
       while i<=10 
             If objFSO.FolderExists(FilePath(i)) Then 
                   msg1 = msg1 & FilePath(i) & vbcrlf
             Else 
                   msg2 = msg2 & FilePath(i) & vbcrlf
             End If 
     
             i=i+1 
       wend 
       Wscript.Echo "Les répertoires " & msg1 & " existent"
       Wscript.Echo "Les répertoires " & msg2 & " n'existent pas"
    Tu dis

    A+

  7. #27
    Inactif
    Inscrit en
    Janvier 2006
    Messages
    202
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 202
    Points : 70
    Points
    70
    Par défaut
    Génial merci encore pour votre patience

    Je vais peut être avoir l'aire un exigant mais se n'est pas possible que les répertoires existance soit lister dans le même msgbox que se qui n'éxiste pas ?

    Dans le vbs vous dite que je peut redimentionné le tableau avec ReDim preserve, vous voulez dire que je peut le redimentionné dynamiquement ?

  8. #28
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    En vba, Redim Tableau(i)
    redimensionne un tableau mais les données précédentes sont perdues
    Redim Preserve Tableau(i)
    est fait pour redimensionner un tableau en dynamique à la valeur de i mais en conservant les données jusqu'à i-1
    En VBS, faut faire l'essai...

    Pour ton autre question, là je trouve que tu pousses un peu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Wscript.Echo "Les répertoires " & vbcrlf & msg1 & " existent" & vbcrlf & vbcrlf & "Les répertoires " & vbcrlf & msg2 & " n'existent pas"
    Je pense qu'en faisant un minimum d'effort, tu aurais pu le trouver tout seul, non ?

    D'autres questions ?

    A+

  9. #29
    Inactif
    Inscrit en
    Janvier 2006
    Messages
    202
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 202
    Points : 70
    Points
    70
    Par défaut
    Merci merci beaucoup

    Ben pour redimentioner le tablau je ne pense pas que se soit utile en faite j'ai supprimer les 3 dernier répertoire mais j'ai laisser dim FilePath(10) et le script fonctionne quand même.


    Oui efectivement j'aurai du réfléchire un peut, j'aurai du y penssé même s'été tout bête

  10. #30
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    J'ai une question pour toi : Si tu n'as qu'un répertoire existant ou qu'un répertoire n'existant pas, comment fais-tu pour mettre "exite" au singulier ou au pluriel ? Hein ?

    A+

  11. #31
    Inactif
    Inscrit en
    Janvier 2006
    Messages
    202
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 202
    Points : 70
    Points
    70
    Par défaut
    Justement se que je vien de faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Wscript.Echo "Le(s) répertoire(s) " & msg1 & " exist(ent)" & vbcrlf & "." & vbcrlf & "Le(s) répertoire(s) " & msg2 & " n'existe(nt) pas"

  12. #32
    Inactif
    Inscrit en
    Janvier 2006
    Messages
    202
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 202
    Points : 70
    Points
    70
    Par défaut
    Maitenant j'aimerai un peut amélioré se script, voila en faite se que je veut faire avec ce script s'est tester combien de version d'un même logiciel sont installer est donc quel sont les versions installer, il faudrai donc maintenant qu'a la place d'afficher le chemin des répertoire dans le MsgBox chaque chemin soit associé à un numéro le numèro de la version, je pensse q'il faut utiliser des variables mais je ne voie pas coment faire, n'auriez vous pas une piste ?

  13. #33
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Ah oui ? Hé bien tu as laissé une erreur, là
    Wscript.Echo "Le(s) répertoire(s) " & msg1 & " exist(ent)" & vbcrlf & "." & vbcrlf & "Le(s) répertoire(s) " & msg2 & " n'existe(nt) pas"


    A+

    edit
    Pour ta dernière question, tu devrais la poser sur le forum, celle-ci étant résolue

  14. #34
    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
    tiens j'ai modifié le code à oukel'nor .. pour te montrer un exemple d'utilisation de Redim... et l'utilisation de procédure/Fonctions pour organisation code...
    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
    dim FilePath() 'Tiens il sera redimensionable
     
     
    AjtFichier Filepath,"D:\xls\"
    AjtFichier Filepath,"C:\Program Files\"
    AjtFichier Filepath,"C:\Program Files\Microsoft Office\"
    AjtFichier Filepath,"C:\Program Files\Creative\"
    AjtFichier Filepath,"C:\Program Files\Microsoft Office\Office\"
    AjtFichier Filepath,"C:\Program Files\Microsoft Office\Office\Gestionnaire Office\"
    AjtFichier Filepath,"C:\WINDOWS\SYSTEM32\"
    AjtFichier Filepath,"C:\WINDOWS\SYSTEM\"
    AjtFichier Filepath,"C:\WINDOWS\Nimporte quoi\"
    AjtFichier Filepath,"C:\WINDOWS\Coucou\"
    if  Not testfiles then
     Wscript.Echo "Erreur il Manque au moins un des répertoires "
     Wscript.Quit
    end if
     
     Wscript.Echo "Tous les répertoires existent .. on continue le traitement"
     
     
    '
    ' Procédure D'ajout répertoir dans tableau
    '
    Sub AjtFichier (FilePath, st)
     Dim i 'Nb Enreg
     On Error Resume next 'Pour eviter erreur si tableau vide
     i= ubound(filepath)
     
      redim preserve filepath(i+1)
       filePath(i) = st
    end sub
    '
    ' Procedure de test existance fichiers
    '
    Function testFiles
      Dim i
      Dim Msg
      Dim bErreur 'Passe à 1 si mqe un des répertoires
      bErreur = false
      Set objFSO = CreateObject("Scripting.FileSystemObject") 
      msg = " Résultat test répertoires : " & vbCrlf
      for  i = 0  to  ubound(filepath) -1
       If objFSO.FolderExists(filepath(i)) Then
          msg = msg &  filepath(i) & " => OK" & vbcrlf     
        else
         msg = msg &  filepath(i) & " => INEXISTANT" & vbcrlf     
         bErreur = true
       end if
      Next
      Wscript.Echo msg
      TestFiles=not bErreur 'Retour de la fonction
    end Function

  15. #35
    Inactif
    Inscrit en
    Janvier 2006
    Messages
    202
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 202
    Points : 70
    Points
    70
    Par défaut
    ouskel'n'or merci pour la réctification

    Maitenant j'aimerai un peut amélioré se script, voila en faite se que je veut faire avec ce script s'est tester combien de version d'un même logiciel sont installer est donc quel sont les versions installer, il faudrai donc maintenant qu'a la place d'afficher le chemin des répertoire dans le MsgBox chaque chemin soit associé à un numéro le numèro de la version, je pensse q'il faut utiliser des variables mais je ne voie pas coment faire, n'auriez vous pas une piste ?

  16. #36
    Inactif
    Inscrit en
    Janvier 2006
    Messages
    202
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 202
    Points : 70
    Points
    70
    Par défaut
    Merci beaucoup bbil

  17. #37
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Hello,

    Je comprends ta question mais ce que je ne comprends pas c'est le lien avec la précédente. Tu listes des noms de répertoires pas des applis...

    A+

  18. #38
    Inactif
    Inscrit en
    Janvier 2006
    Messages
    202
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 202
    Points : 70
    Points
    70
    Par défaut
    Bojour, ah bon j'ai donné un lien je ne m'en souvient pas, et je ne e retrouve pas dans le poste, s'été quoi se lien ?

  19. #39
    Membre chevronné
    Avatar de sovo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    1 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

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

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 389
    Points : 1 788
    Points
    1 788
    Par défaut
    Citation Envoyé par ouskel'n'or
    dim i
    dim FilePath(10)
    je me disais bien que ce n'etait pas la meme declaration en VB et en VBS.

    J'ai une question pour ouskel'n'or, je remarque que pour voir si une application existe tu va voir si le repertoire qui le contient existe. Bien pense, mais voila il y a certaine application qui apres etre desinstaller ne supprime pas le repertoire dans "program file". Dans ce cas je croit que si Edoxituz execute sont code pour cette application, il va lui dire que m'appli existe (car le repertoire existera) et pourtant ce sera faut.

    Moi je proposerais plutot (afin d'eviter le probleme poser plus haut) qu'il fasse une recherche sur l'exe de cet application (exemple "c:\Program file microsoft office\...\winword.exe). La aumoins on est sur de l'existance ou de la nom existance du fichier "exe" et par ricochet de l'application. Qu'en penses tu ??
    "Toute question a une reponse. Et chaque reponse est une nouvelle question." Albert EINSTEIN

    En cas de Question resolu, n'oubliez pas

Discussions similaires

  1. Tester plusieurs calculs avec try-catch
    Par saddamtohmto dans le forum MATLAB
    Réponses: 2
    Dernier message: 09/08/2007, 11h15
  2. Réponses: 2
    Dernier message: 11/04/2007, 12h14
  3. [VBS]Vider un répertoire avec la commande RUNAS
    Par Alphaz dans le forum VBScript
    Réponses: 3
    Dernier message: 20/06/2006, 17h43
  4. plusieurs tables avec un seul DBnavigator et DBGRID
    Par warrior dans le forum Bases de données
    Réponses: 8
    Dernier message: 07/06/2005, 08h12
  5. Plusieurs commandes avec 1 seule R-commande
    Par pouldo dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 01/04/2005, 18h44

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