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 :

[VBScript] Problème avec fin d'instruction attendue


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Gestionnaire

    Informations forums :
    Inscription : Juin 2013
    Messages : 14
    Par défaut [VBScript] Problème avec fin d'instruction attendue
    Bonjour, je suis nouveau sur ce forum, je vous salue.

    J'ai un soucie avec un code que j'ai fait pour l'entreprise pour laquelle je travaille. Ce code doit lister les dossiers et les sous-dossier dans un répertoire et les partager sur le réseau, mais il me fait un erreur "Fin d'instruction attendu" a un moment donner, vers la fin et je ne sais pas ce que cela peut bien être.

    Je voudrais demander si vous pouviez me donner un indice sur mon problème.

    Erreur :

    Ligne : 60
    Caract. : 3
    Code : 800A401

    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
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    option explicit
     
    'Définition de variable
    Dim foldername, objfso, objrootfolder, objsubfolder, stroutput
     
    'Demande à l'utilisateur l'emplacement du fichier
    foldername = inputbox("Quel dossier voulez-vous scanner ? (chemin UNC)")
     
    'Listage des dossiers et des sous-dossiers
    Set objfso = createobject("scripting.filesystemobject")
    Set objrootfolder = objfso.getfolder(foldername)
    Set objsubfolder = objrootfolder.subfolders
     
    'Boucle de listage
     
    	For Each objrootfolder in objsubfolder
    		stroutput = stroutput & objrootfolder.name
    		stroutput = stroutput &  vbCrLf
    	Next
     
    'Affichage des dossier à l'écran
    msgbox stroutput
     
    'Définition de variable
    'Dim outputfile
     
    'Création d'un fichier texte pour stocker les noms des dossiers
    'Set stroutput = objfso.createtextfile("C:\Result.txt")
     
    dim CreateFolder, CreateFile, oFSO, oFolder, oFile, oText
     
    CreateFolder = inputbox("Entrez le nom du dossier à créer")
    CreateFile = inputbox("Entrez le nom du fichier à créer")
     
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    Set oFolder = oFSO.CreateFolder("C:\" & CreateFolder)
    'Set oFile = oFSO.CreateTextFile("C:\" & CreateFolder & "\" & CreateFile & ".txt")
     
    Set oText = oFSO.OpenTextFile("C:\" & CreateFolder & "\" & CreateFile ,8,true)
     
    oText.WriteLine(stroutput)
     
    Const ForReading = 1, ForWriting = 2 
     
      Set oText = oFSO.OpenTextFile("C:\" & CreateFolder & "\" & CreateFile, ForReading)
    	while Not oText.AtEndOfStream 
    		wscript.echo oText.ReadLine
     
    	Const FILE_SHARE = 0
    	Const MAXIMUM_CONNECTIONS = 25
     
    		Dim objWMIService, objNewShare, strComputer
     
    		strComputer = "."
     
    		Set objWMIService = GetObject("winmgmts:" _
    		& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
     
    		Set objNewShare = objWMIService.Get("Win32_Share")
    		errReturn = objNewShare.Create _
                    "C:\" & oText &", " & oText , FILE_SHARE, _
    		MAXIMUM_CONNECTIONS
     
    		Wscript.Echo errReturn
     
    	Wend
     
    	oText.Close
    Merci à l'avance pour toute aide apporter.

  2. #2
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 130
    Par défaut
    Salut

    Ligne 60 à 62, bien que ne connaissant pas l'objet objNewShare.Create, aprés un =, les paramétrés de fonction ou procédure doivent être encadrés de (...,...,.......)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            Set objNewShare = objWMIService.Get("Win32_Share")
            errReturn = objNewShare.Create _
            ("C:\" & oText & ", " & oText, FILE_SHARE, _
            MAXIMUM_CONNECTIONS)
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Membre averti
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Gestionnaire

    Informations forums :
    Inscription : Juin 2013
    Messages : 14
    Par défaut
    Je voudrais préciser que (objNewShare) est le nom de la variable qui me permet de contenir l'information ressortie et par le fait même je ne comprend pas la réponse, car lorsque je met des parentèses il me ressort l'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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    Const ForReading = 1, ForWriting = 2 
      
      Set oText = oFSO.OpenTextFile("C:\" & CreateFolder & "\" & CreateFile, ForReading)
    	while Not oText.AtEndOfStream 
    		wscript.echo oText.ReadLine
    	
    	Const FILE_SHARE = 0
    	Const MAXIMUM_CONNECTIONS = 25
    	
    		Dim objWMIService, objNewShare, strComputer
    		
    		strComputer = "."
    		 
    		Set objWMIService = GetObject("winmgmts:" _
    		& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    	
    		Set objNewShare = objWMIService.Get("Win32_Share")
       --ici-->	errReturn = objNewShare.Create _
    		("C:\" & oText &", " & oText , FILE_SHARE, _
    		MAXIMUM_CONNECTIONS)
    
    		Wscript.Echo errReturn
    
    	Wend
    
    	oText.Close
    Ligne :74
    Caract.: 3
    Erreur : Cet objet ne gère pas cette propriété ou cette méthode

  4. #4
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 130
    Par défaut
    Curieux
    avec ce
    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
    	Const FILE_SHARE = 0
    	Const MAXIMUM_CONNECTIONS = 25
     
    		Dim objWMIService, objNewShare, strComputer
     
    		strComputer = "."
     
    		Set objWMIService = GetObject("winmgmts:" _
    		& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
     
    		Set objNewShare = objWMIService.Get("Win32_Share")
    	errReturn = objNewShare.Create _
    	("C:\" & oText &", " & oText , FILE_SHARE, _
    		MAXIMUM_CONNECTIONS)
     
    		msgbox errReturn
    pas d'erreur.
    Par contre avec ce
    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
    	Const FILE_SHARE = 0
    	Const MAXIMUM_CONNECTIONS = 25
     
    		Dim objWMIService, objNewShare, strComputer
     
    		strComputer = "."
     
    		Set objWMIService = GetObject("winmgmts:" _
    		& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
     
    		Set objNewShare = objWMIService.Get("Win32_Share")
    	errReturn = objNewShare.Create _
    	"C:\" & oText &", " & oText , FILE_SHARE, _
    		MAXIMUM_CONNECTIONS
     
    		msgbox errReturn
    j'ai bien l'erreur Cet objet ne gère pas cette propriété ou cette méthode
    Donc ton erreur doit provenir d'une partie du code que tu ne nous mes pas , le gestionnaire d'erreur de l'éditeur VBS n'est pas des plus fiable, la ligne et le n° de colonne n'est pas garantie.
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  5. #5
    Membre averti
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Gestionnaire

    Informations forums :
    Inscription : Juin 2013
    Messages : 14
    Par défaut
    Tout le code VBS est dans mon premier post.

    Dans mon cas, que je met le chemin UNC entre parenthèse ou pas, il me fait une erreur. Mais elle n'est jamais à la même place. Si les parenthèse sont la, l'erreur ce situe sur la ligne du "errReturn = objNewShare.Create". Et lorsque les parenthèses ne sont pas la, bien l'erreur est au niveau du chemin UNC.

    Et c'était un wscript.echo avant que le msgbox apparaisse. Mais il me fait toujours les mêmes erreurs.


    PS : Je te remet TOUT le code pour t'éviter le retour en haut.

    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
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
     
     
    option explicit
     
    'Définition de variable
    Dim foldername, objfso, objrootfolder, objsubfolder, stroutput
     
    'Demande à l'utilisateur l'emplacement du fichier
    foldername = inputbox("Quel dossier voulez-vous scanner ? (chemin UNC)")
     
    'Listage des dossiers et des sous-dossiers
    Set objfso = createobject("scripting.filesystemobject")
    Set objrootfolder = objfso.getfolder(foldername)
    Set objsubfolder = objrootfolder.subfolders
     
    'Boucle de listage
     
    	For Each objrootfolder in objsubfolder
    		stroutput = stroutput & objrootfolder.name
    		stroutput = stroutput &  vbCrLf
    	Next
     
    'Affichage des dossier à l'écran
    msgbox stroutput
     
    'Définition de variable
    'Dim outputfile
     
    'Création d'un fichier texte pour stocker les noms des dossiers
    'Set stroutput = objfso.createtextfile("C:\Result.txt")
     
    dim CreateFolder, CreateFile, oFSO, oFolder, oFile, oText
     
    CreateFolder = inputbox("Entrez le nom du dossier à créer")
    CreateFile = inputbox("Entrez le nom du fichier à créer")
     
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    Set oFolder = oFSO.CreateFolder("C:\" & CreateFolder)
    'Set oFile = oFSO.CreateTextFile("C:\" & CreateFolder & "\" & CreateFile & ".txt")
     
    Set oText = oFSO.OpenTextFile("C:\" & CreateFolder & "\" & CreateFile ,8,true)
     
    oText.WriteLine(stroutput)
     
    Const ForReading = 1, ForWriting = 2 
     
      Set oText = oFSO.OpenTextFile("C:\" & CreateFolder & "\" & CreateFile, ForReading)
    	while Not oText.AtEndOfStream 
    		wscript.echo oText.ReadLine
     
    	Const FILE_SHARE = 0
    	Const MAXIMUM_CONNECTIONS = 25
     
    		Dim objWMIService, objNewShare, strComputer
     
    		strComputer = "."
     
    		Set objWMIService = GetObject("winmgmts:" _
    		& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
     
    		Set objNewShare = objWMIService.Get("Win32_Share")
    		errReturn = objNewShare.Create _
    		("C:\" & oText &", " & oText , FILE_SHARE, _
    		MAXIMUM_CONNECTIONS)
     
    		msgbox errReturn
     
    	Wend
     
    	oText.Close

  6. #6
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 130
    Par défaut
    Comme dit dans ma première intervention, je ne connais pas le type d'objet obtenu avec objNewShare.
    Pour autant, en recherchant à droite et à gauche, il semblerait qu'il faille 5 paramètres (à moins que certains soient optionnels.
    l'exemple retrouvé est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     errReturn = objNewShare.Create _
         ("C:\Finance", "FinanceShare", FILE_SHARE, _
             MAXIMUM_CONNECTIONS, "Public share for the Finance group.")
    il faut bien des ().



    Actuellement le code est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            errReturn = objNewShare.Create("C:\" & oText & ", " & oText, FILE_SHARE, MAXIMUM_CONNECTIONS)
    Il doit y avoir un problème de virgule pris comme littéral non pas comme séparateur de paramétrés, essais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            errReturn = objNewShare.Create("C:\" & oText, oText, FILE_SHARE, MAXIMUM_CONNECTIONS)
    permet de passer 4 paramètres, le 5éme semblant une option.
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

Discussions similaires

  1. fin d'instruction attendue(erreur 800A0400 ) en vbscript
    Par regisyves dans le forum VBScript
    Réponses: 4
    Dernier message: 06/06/2010, 22h55
  2. vbs erreur : fin d'instruction attendue
    Par Armadeus dans le forum Windows Vista
    Réponses: 0
    Dernier message: 25/08/2009, 10h28
  3. problème avec instruction "RemoveItem"
    Par audrey_desgres dans le forum Access
    Réponses: 4
    Dernier message: 15/06/2005, 09h26
  4. Problème avec une instruction OUTER /Postgres
    Par Volcomix dans le forum Langage SQL
    Réponses: 14
    Dernier message: 21/04/2004, 16h56

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