Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
966 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  VBScript de création de repertoire

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

VBScript de création de repertoire

n°1259019
Frittz
Posté le 05-12-2005 à 13:50:58  profilanswer
 

Bonjour,
 
J'ai un problème que je n'arrive pas a résoudre donc je solicite votre aide.
 
Je dois créer un script qui créer des repertoires et aprés qui les transforme en repertoire virtuelle pour un serveur IIS.
Je pense que ce script marche pour la création de repertoire virtuel.
 
Cependant j'ai un problème car le script crée les repertoires (enfin en partie..).
Les repertoires viennent d'une liste.txt, entrer les un à la suite des autres.
 
Problèmes :
 
- Il ne crée jamais le dernier repertoire de la liste ( problème dans la boucle ?)
- Dans les repertoires créer il recrée les repertoires de la liste.
 
ex :
 
liste.txt :
rep1
rep2
rep3
 
Il crée les repertoires 1 et 2 mais pas le 3eme.
Dans les rep 1 et 2 il recreera les repertoires 1 et 2.
 
Voila le code !
 

Code :
  1. 'Declaration des variables
  2. Dim ligne
  3. Dim fsoopen, fsocreate, f, fexist, servobj, vdirobj
  4. 'msgbox "hop"
  5. 'Creation des objets fso pour l'ouverture, la creation de repertoire et le test d'existence de repertoire
  6. Set fsoopen = CreateObject("scripting.filesystemobject" )
  7. Set fsocreate = CreateObject("scripting.filesystemobject" )
  8. Set fexist = CreateObject("scripting.filesystemobject" )
  9. Set liste = fsoopen.opentextfile("C:\SCRIPT\listelogin.txt", 1)
  10.          ligne = liste.readline '1ere lecture : 1ere ligne
  11.  'msgbox ligne
  12.          Do While liste.atendofstream <> true
  13.   If fexist.Folderexists(ligne) <> true then
  14.    Set f = fsocreate.CreateFolder("C:\SCRIPT\" & ligne) 'creation du répertoire
  15.    Set servobj = GetObject("IIS://localhost/W3SVC/3/ROOT" ) 'le paramétre 3 nous renseigne qu'il s'agit de la 3eme zone (zone eleve), c'est ici que sont cree les repertoires virtuels
  16.    if (err<>0) then
  17.     msgbox "probleme d'ouverture du chemin du serveur web"
  18.    end if
  19.    Set vdirobj = servobj.create("IISWebVirtualDir", ligne)
  20.    vdirobj.Path = "c:\SCRIPT\" & login
  21.    vdirobj.AccessRead = True
  22.    vdirobj.AccessWrite = True
  23.    vdirobj.EnableDirBrowsing = False
  24.    vdirobj.AppFriendlyName = "test " & ligne
  25.    vdirobj.SetInfo
  26.    ligne = liste.readline
  27.   else
  28.    ligne = liste.readline
  29.   End if
  30.  Loop


 
 
Merci beaucoup pour votre aide car je desespere.
 
A+

mood
Publicité
Posté le 05-12-2005 à 13:50:58  profilanswer
 

n°1259061
olivthill
Posté le 05-12-2005 à 14:34:20  profilanswer
 

En réorganisant un peu la boucle comme ci-après, cela devrait mieux marcher.

Code :
  1. 'Declaration des variables
  2. Dim ligne
  3. Dim fsoopen, fsocreate, f, fexist, servobj, vdirobj
  4. 'msgbox "hop"
  5. 'Creation des objets fso pour l'ouverture, la creation de repertoire et le test d'existence de repertoire
  6. Set fsoopen = CreateObject("scripting.filesystemobject" )
  7. Set fsocreate = CreateObject("scripting.filesystemobject" )
  8. Set fexist = CreateObject("scripting.filesystemobject" )
  9. Set liste = fsoopen.opentextfile("C:\SCRIPT\listelogin.txt", 1)
  10.         Do Until liste.atendofstream
  11.             ligne = liste.readline
  12.             'msgbox ligne
  13.             If fexist.Folderexists(ligne) <> true then
  14.    
  15.                 Set f = fsocreate.CreateFolder("C:\SCRIPT\" & ligne) 'creation du répertoire
  16.                 Set servobj = GetObject("IIS://localhost/W3SVC/3/ROOT" ) 'le paramétre 3 nous renseigne qu'il s'agit de la 3eme zone (zone eleve), c'est ici que sont cree les repertoires virtuels
  17.                 if (err<>0) then
  18.                     msgbox "probleme d'ouverture du chemin du serveur web"
  19.                 end if
  20.                
  21.                 Set vdirobj = servobj.create("IISWebVirtualDir", ligne)
  22.                 vdirobj.Path = "c:\SCRIPT\" & login
  23.                 vdirobj.AccessRead = True
  24.                 vdirobj.AccessWrite = True
  25.                 vdirobj.EnableDirBrowsing = False
  26.                 vdirobj.AppFriendlyName = "test " & ligne
  27.                 vdirobj.SetInfo
  28.                
  29.             End if
  30.            
  31.         Loop

n°1259076
Frittz
Posté le 05-12-2005 à 14:42:49  profilanswer
 

Merci pour ta réponse mais il zap toujours mon dernier élément de la liste. J'ai envie d'ajouter une ligne fictive a ma liste .. c une solution un peu bourrin mais bon ... J'suis toujours à la recherche d'une solution efficace.
 
Merci

n°1259151
Frittz
Posté le 05-12-2005 à 15:32:20  profilanswer
 

C'est bon problème résolu j'ai refait mon code. :)
 
Par contre je suis entrain de faire un script .bat et je cherche à récupérer la variable windows contenant le nom de login d'un utilisateur pour la passer en paramétre à mon script.
 
Si qqun a ca en stock ? :)
 
Merci

n°1259207
mareek
Et de 3 \o/
Posté le 05-12-2005 à 16:03:09  profilanswer
 

tu peux récupérer le login de l'utilisateur directement dans ton script:


Dim sLogin
Dim oWshNetwork
 
Set oWshNetwork = CreateObject("WScript.Network" )
sLogin = oWshNetwork.UserName
 



---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
n°1670311
Coolnut
Posté le 13-01-2008 à 09:19:13  profilanswer
 

Bonjour, pouriez vous me montrer un exemple pour créer un répertoire ?


Message édité par Coolnut le 13-01-2008 à 09:19:25
n°1671229
dreameddea​th
Posté le 14-01-2008 à 23:17:58  profilanswer
 

Bah si tu lisais juste le code donné, tu devrais y trouver ton bonheur (genre la méthode createfolder)

n°1783038
bencoco
Posté le 05-09-2008 à 12:02:32  profilanswer
 

Bonjour Frittz,
 
Peux-tu afficher ton script résolu ?.
Ce serait sympa de faire profiter tout le monde.
 
Merci.
 
Cordialement.
 
 
 
 
 
 
 
 
 

Frittz a écrit :

Bonjour,
 
J'ai un problème que je n'arrive pas a résoudre donc je solicite votre aide.
 
Je dois créer un script qui créer des repertoires et aprés qui les transforme en repertoire virtuelle pour un serveur IIS.
Je pense que ce script marche pour la création de repertoire virtuel.
 
Cependant j'ai un problème car le script crée les repertoires (enfin en partie..).
Les repertoires viennent d'une liste.txt, entrer les un à la suite des autres.
 
Problèmes :
 
- Il ne crée jamais le dernier repertoire de la liste ( problème dans la boucle ?)
- Dans les repertoires créer il recrée les repertoires de la liste.
 
ex :
 
liste.txt :
rep1
rep2
rep3
 
Il crée les repertoires 1 et 2 mais pas le 3eme.
Dans les rep 1 et 2 il recreera les repertoires 1 et 2.
 
Voila le code !
 

Code :
  1. 'Declaration des variables
  2. Dim ligne
  3. Dim fsoopen, fsocreate, f, fexist, servobj, vdirobj
  4. 'msgbox "hop"
  5. 'Creation des objets fso pour l'ouverture, la creation de repertoire et le test d'existence de repertoire
  6. Set fsoopen = CreateObject("scripting.filesystemobject" )
  7. Set fsocreate = CreateObject("scripting.filesystemobject" )
  8. Set fexist = CreateObject("scripting.filesystemobject" )
  9. Set liste = fsoopen.opentextfile("C:\SCRIPT\listelogin.txt", 1)
  10.          ligne = liste.readline '1ere lecture : 1ere ligne
  11.  'msgbox ligne
  12.          Do While liste.atendofstream <> true
  13.   If fexist.Folderexists(ligne) <> true then
  14.    Set f = fsocreate.CreateFolder("C:\SCRIPT\" & ligne) 'creation du répertoire
  15.    Set servobj = GetObject("IIS://localhost/W3SVC/3/ROOT" ) 'le paramétre 3 nous renseigne qu'il s'agit de la 3eme zone (zone eleve), c'est ici que sont cree les repertoires virtuels
  16.    if (err<>0) then
  17.     msgbox "probleme d'ouverture du chemin du serveur web"
  18.    end if
  19.    Set vdirobj = servobj.create("IISWebVirtualDir", ligne)
  20.    vdirobj.Path = "c:\SCRIPT\" & login
  21.    vdirobj.AccessRead = True
  22.    vdirobj.AccessWrite = True
  23.    vdirobj.EnableDirBrowsing = False
  24.    vdirobj.AppFriendlyName = "test " & ligne
  25.    vdirobj.SetInfo
  26.    ligne = liste.readline
  27.   else
  28.    ligne = liste.readline
  29.   End if
  30.  Loop


 
 
Merci beaucoup pour votre aide car je desespere.
 
A+



Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  VBScript de création de repertoire

 

Sujets relatifs
[Résolu] Numéro d'erreur de listing de répertoire ?j'ai du code vbscript que j'aimerais transformer en vb6
Exécution à distance, problème de répertoireConseil création base de données (novice)
Macro : ouverture de fichiers dans un répertoireCreation d'un site web
[PHP] Empecher l'accès direct à un sous répertoire d'un site[PHP] Lister le contenu d'un repertoire en faisant des liens[resolu]
Modification d'un fichier vbscript[Excel] Macro creation graphique en fonction de feuille selectionée
Plus de sujets relatifs à : VBScript de création de repertoire


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR