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 :

un script pour créer un site


Sujet :

VBScript

  1. #1
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut un script pour créer un site
    Bonuour, j'ai un répertoire, contenant des sous répertoire, contenant des scsript (type batch, powershelle, vbs), je voudrai créer un script pour créer un des pages html avec des liens vers les scripts (les liens devron porter le nom des scripts), l'arborécense des page devra tenir compte de l'orborécensse des répertoire, j'avai réussi a faire un script batch dos, qui fesait une seul page avec des liens ver tous les script mais je n'arriver pas à gerer l'arborecense, je cri que c'est impossible en batch, c'est pour cela que je me tourne ver VBSn mais je n'est aucune idée de la facon de procéder, pourire vous m'aider ?

  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
    ben il va falloir que tu apprenne aussi le html .. que tu détermine les lignes à générer .. puis je crois que tu connais déjà fileSystemObject... qui te permettra d'écrire ton fichier html ...



  3. #3
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Pour la code html, je sais faire.

    Mais par exemple, pour lister tous les fichiers présent dans un répertoire et pour créer un lien par fichier dans la page html je ne sais pas comment faire, je pensse qu'il doit faloir faire une boucle for, mais je ne connait pas les boucle en vbs, je saurait faire en dos, mais pas en vbs

  4. #4
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    For i = 10 to 20
    Next
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for i = 0 to 10 Step = 2
    Next i
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  5. #5
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Pourais tu m'expliquer ce que font ces boucle exactement ?

  6. #6
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    la première on commence à 10, on va jusqu'à 20 et on incrmente de 1 i à chaque toude boucle c'est la même chose que :
    La deuxième on commence à 0 et on va jusqu'à 10. on incremente de 2 cette fois ci, la valeur du step.

    La formulation générique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    For compteur = debut To fin [Step = pas]
    Next [compteur]
    Ce qui est entre [] est optionel.
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  7. #7
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    C'est pas vraiment la boucle qu'il me faut

  8. #8
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    comment je dois faire pour voir ce qui se passe avec cette boucle:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    For i = 10 to 20
    Next

  9. #9
    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
    moi j'ai pas compris à quoi elle doit servir ta boucle...

    si c'est pour lister des fichiers , voir :

    http://vb.developpez.com/faqvbs/?pag...oListeFichiers


  10. #10
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Citation Envoyé par koKoTis Voir le message
    C'est pas vraiment la boucle qu'il me faut
    Heu j'ai pas compris, ce n'est pas ce type de boucle qui t'intéresse ?
    il y a aussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Do While condition
    Loop
    Et :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    For Each élément In collection
    Next [élément]


    comment je dois faire pour voir ce qui se passe avec cette boucle:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    For i = 10 to 20
    Next
    Tu peux par exemple faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim result
    result = 0
    For i = 10 to 20
    result = result + i
    Next
    msgbox result
    Cela te sommes tous les entier de 10 à 20.
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  11. #11
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Citation Envoyé par bbil Voir le message
    moi j'ai pas compris à quoi elle doit servir ta boucle...

    si c'est pour lister des fichiers , voir :

    http://vb.developpez.com/faqvbs/?pag...oListeFichiers

    J'ai donc récupérer cette boucle:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    stRep = "C:\Documents and Settings\Kookatix\Bureau\Nouveau dossier"
    If oFSO.FolderExists(stRep) Then
     For each oFl in  oFSO.GetFolder(stRep).Files
       Wscript.Echo oFl.Name	
     Next
    End If
    Mais d'une par elle affiche un message pour chaque fichier, puis elle ne liste pas les fichier des sous répertoires

  12. #12
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    pour lister le fichier dans une seul et unique fenêtre j'ai compris:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    stRep = "C:\Documents and Settings\Kookatix\Bureau\Nouveau dossier"
    If oFSO.FolderExists(stRep) Then
     For each oFl in  oFSO.GetFolder(stRep).Files
       vrFchs = vrFchs & vbCrLf & oFl.Name	
     Next
    End If
     
    Wscript.Echo vrFchs
    maitenant me reste a fouiller les sous répertoires

  13. #13
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Donc voici mon code à présent:
    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
     
    Set WshShell = WScript.CreateObject("WScript.Shell") 
    Set objNetwork = CreateObject("Wscript.Network")
    strUser = objNetwork.UserName
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set fso = CreateObject("Scripting.FileSystemObject") 
     
    urlrepertoire="C:\Scripting - Batch VBS ect"
     
        Variable = MsgBox("Jérémie veut tu copier le répertoire scripting sous C ?", vbYesNo)
          If Variable = vbYes Then 
               If objFSO.FolderExists(urlrepertoire) Then
                      Set FSO = CreateObject("Scripting.FileSystemObject")
                      Set fsoFolder = fso.getFolder(urlrepertoire)
                       fsofolder.delete
               Else
               End If
               FSO.CopyFolder "Z:\Scripting - Batch VBS ect", "C:\Scripting - Batch VBS ect"
          Else
          End If
     
    Set fso = CreateObject("Scripting.FileSystemObject")
     
    traiterepertoire(urlrepertoire)
     
    sub traiterepertoire(url)
     
      Set fd = fso.GetFolder(url)
      For Each fdCur In fd.SubFolders
               Set FichierTXT = WScript.CreateObject("WScript.Shell") 
                Set f = fso.OpenTextFile(urlrepertoire & "\index.htm", 8,true)
                 f.writeline("<a href=""" & url & "\" & fdCur.Name & "\index.htm"">" & vrChmCourt & "\" & fdCur.Name &"</a> <br>") 
             f.close
             traiterepertoire(url & "\" & fdCur.Name)
             vrChmCourt = Replace(url,urlrepertoire & "\","")      
      Next
     
      For Each fdfile In fd.Files
               Set FichierTXT = WScript.CreateObject("WScript.Shell") 
                Set f = fso.OpenTextFile(url & "\index.htm", 8,true) 
                 f.writeline("<a href=""" & url & "\" & fdfile.Name & """> "& fdfile.Name &"</a><br>") 
             f.close
      next
     
    end sub
    Mais la ligne:

    f.writeline("<a href=""" & url & "\" & fdCur.Name & "\index.htm"">" & vrChmCourt & "\" & fdCur.Name &"</a> <br>")
    En fin ce que j'ai mi en rouge saute des nom de répertoire des foies, vous voyer ce qu'il faut faire ?

  14. #14
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Ce qu'il serait bien c'est que tu déclare toutes tes variables.
    vrChmCourt n'est jamais déclaré :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim vrChmCourt 'ça c'est une déclaration
    Ensuite ton problème vient, je pense, du fait que lors du premier tour de ta boucle tu utilises vrChmCourt alors que tu ne l'as ni déclarer, ni affter de valeur.
    L'interpréteur du script (cscript ou l'autre) est intéligent et doit déclarer cette variable tout seul.
    Et il lui affecte la valeur vide.
    Et comme tu concatènes des chaines de caractères avec la valeur de ta variable, lors du premier tour de boucle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    f.writeline("<a href=""" & url & "\" & fdCur.Name & "\index.htm"">" & vrChmCourt & "\" & fdCur.Name &"</a> <br>")
    Doit donner cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    f.writeline("<a href=""" & url & "\" & fdCur.Name & "\index.htm"">" & """" & "\" & fdCur.Name &"</a> <br>")
    J'ai mis en rouge la valeur que doit prendre ta variable au premier tour de boucle.

    Donc je te conseille avant la boucle de donner à vrChmCourt la valeur qu'elle doit avoir au premier tour de la boucle.
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  15. #15
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Encore merci pour ses explication

    On ma dit plusieurs fois qu'il n'été pas la peine de déclarer les variable en VBScript.


    Ben au premier tour de la boucle ma variable vaut:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
             vrChmCourt = Replace(url,urlrepertoire & "\","")
    Et vu que urlrepertoire contien C:\Scripting - Batch VBS ect elle doit être vide est premier tour, mais au premier tour elle ne prend le chemin que du répertoire princiaple, est je n'est pas besoin de créer un lien dans ma page sommaire qui pointerai ver une page du répertoire principale donc quelle soit vide au premier tour c'est pas grave.


    Mon probléme c'est que:
    la variable vrChmCourt contien le chemin du répertoire actuellement traiter moin le les premier répertoire qui meine au répertoire principale, (donc C:\Scripting - Batch VBS ect), donc par exemple si je suis dans le répertoire C:\Scripting - Batch VBS ect\VBS\exemples\if le texte du lien devrai être VBS\exemples\if, des fois ca marche bien est des fois je n'ai que exemples\if ou bien encore if, tu comprend ce que je veut dire ?

    Regarde ma page htm en fichier joint

  16. #16
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    On ma dit plusieurs fois qu'il n'été pas la peine de déclarer les variable en VBScript.
    Ce n'est pas parce que l'interpréteur sans sort seul qu'il faut faire ainsi.
    N'écoute pas ces personnes !!!! Pour avoir des programmes lisibles compréhensible, pour éviter les erreurs bêtes, et les problèmes incroyable, il faut respecter certaines règles même si ce n'est pas nécessaire
    Déclarer ses variables fait partis de ces règles.

    Ben au premier tour de la boucle ma variable vaut :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    vrChmCourt = Replace(url,urlrepertoire & "\","")
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    For Each fdCur In fd.SubFolders
               Set FichierTXT = WScript.CreateObject("WScript.Shell") 
                Set f = fso.OpenTextFile(urlrepertoire & "\index.htm", 8,true)
                 f.writeline("<a href=""" & url & "\" & fdCur.Name & "\index.htm"">" & vrChmCourt & "\" & fdCur.Name &"</a> <br>") 
             f.close
             traiterepertoire(url & "\" & fdCur.Name)
             vrChmCourt = Replace(url,urlrepertoire & "\","")      
      Next
    Vu ce code à chaque tour de boucle : f.writeline("<a href=""" & url & "\" & fdCur.Name & "\index.htm"">" & vrChmCourt & "\" & fdCur.Name &"</a> <br>") est traiter avant vrChmCourt = Replace(url,urlrepertoire & "\","")

    En effet l'interpréteur lit en démarrant de la première lign et en descendant vers le bas ligne par ligne. (comme en batch si je ne me trompe pas).


    Bon maintenant que j'ai compris ton script, il est vrais que le problème que j'ai signalé ne change pas grand chose.

    J'ai l'impression que cela devrait marcher.
    peux tu dans un autre fichier, écrire le nom de urlrepertoire à chaque tour de boucle.
    Juste vérifier que sa valeur ne change jamais !

    Et vérifie que tu n'as pas de répertoire :
    C:\Scripting - Batch VBS ect\exemples\if
    et :
    C:\Scripting - Batch VBS ect\if

    Que l'on ne cherche pas un bug inexistant
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  17. #17
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Encore merci


    Bon, j'ai mis vrChmCourt = Replace(url,urlrepertoire & "\","") en haut de la boucle, et maitenant il ne manque plu de nom de répertoire

    Mais il m'arrive d'avoir: C:\Scripting - Batch VBS ect\batch ou C:\Scripting - Batch VBS ect\vbs, au lieu de batch ou vbs, en fait ca arrive a chaque foi qu'il n'y a qu'un nom de répertoire aprés le chemin du répertoire principale

  18. #18
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    essaye ce ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    vrChmCourt = Replace(url,urlrepertoire & "\","")
    For Each fdCur In fd.SubFolders
               Set FichierTXT = WScript.CreateObject("WScript.Shell") 
                Set f = fso.OpenTextFile(urlrepertoire & "\index.htm", 8,true)
                 f.writeline("<a href=""" & url & "\" & fdCur.Name & "\index.htm"">" & vrChmCourt & "\" & fdCur.Name &"</a> <br>") 
             f.close
             traiterepertoire(url & "\" & fdCur.Name)
             vrChmCourt = Replace(url,urlrepertoire & "\","")      
      Next
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  19. #19
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Maitenant ca ne le fait plu que pour le premier répertoire.
    Fichiers attachés Fichiers attachés

  20. #20
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Normal je comprends maintenant.
    Au premier replace, avant la boucle je t'ai dis de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    vrChmCourt = Replace(url,urlrepertoire & "\","")
    Mais url ne contiens pas de "\" à la fin .
    Donc replace ne fait rien .

    Essaye avec ceci et cela devrait marcher :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    vrChmCourt = Replace(url,urlrepertoire,"")
    Voir même fait directement ceci :
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

Discussions similaires

  1. [Spip] Combien de temps pour créer un site web ?
    Par gamerome dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 7
    Dernier message: 13/09/2008, 08h21
  2. Comment faire un devis pour créer un site Internet ?
    Par Olivier Regnier dans le forum Devis
    Réponses: 4
    Dernier message: 21/07/2006, 11h58
  3. Aide pour créer mon site, aidez moi.
    Par ganon551 dans le forum Mon site
    Réponses: 24
    Dernier message: 30/06/2006, 19h45
  4. Les différents codes utilisables pour créer un site web ?
    Par mathieu7497 dans le forum Général Conception Web
    Réponses: 3
    Dernier message: 09/03/2006, 10h39
  5. Réponses: 1
    Dernier message: 27/12/2005, 00h27

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