Comme je n'ai aucun caractère entre chaque mot, j'ai mi un espace vide entre guillemet.
Code:arrTmpLine = Split(oText.ReadLine, " ")
Version imprimable
Comme je n'ai aucun caractère entre chaque mot, j'ai mi un espace vide entre guillemet.
Code:arrTmpLine = Split(oText.ReadLine, " ")
:koi:
:pastaper: Peux tu mettre une ou deux phrase de ton fichier ouvert avec Set oText = oFSO.OpenTextFile("C:\" & CreateFolder & "\" & CreateFile, ForReading
Quelle séparateur distingue tes 2 données dans la phrase ?
Je les ai laisser dans l'ordre tel que le script les met dans le fichier sans extension. Il n'y a ni séparateur, ni pont-virgule, etc... Et ce sont QUE des noms de dossier. Dossier Batch, dossier Comptable, Dossier Script, etc...
Batch
Comptable
Script
Code:
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 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 ? (C:\)") '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 'Création d'un fichier texte pour stocker les noms des dossiers Dim CreateFolder, CreateFile, oFSO, oFolder, 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) 'Crée le fichier qui contiendra les noms des dossier à partager Set oText = oFSO.OpenTextFile("C:\" & CreateFolder & "\" & CreateFile ,8,true) oText.WriteLine(stroutput) 'Définition des variables Const ForReading = 1, ForWriting = 2 Const FILE_SHARE = 0, MAXIMUM_CONNECTIONS = 25 Dim objWMIService, objNewShare, strComputer, arrTmpLine, errReturn strComputer = "." Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set objNewShare = objWMIService.Get("Win32_Share") 'Ouverture du dossier et création des partages (en boucle jusqu'à la fin du fichier) Set oFSO = CreateObject("Scripting.FileSystemObject") Set oText = oFSO.OpenTextFile("C:\" & CreateFolder & "\" & CreateFile, ForReading) Do Until oText.AtEndOfStream arrTmpLine = Split(oText.ReadLine, " ") Wscript.Echo "Partage du répertoire <" & arrTmpLine(0) & "> avec le nom <" & arrTmpLine(0) & ">" errReturn = objNewShare.Create (arrTmpLine(0), arrTmpLine(0) , FILE_SHARE, MAXIMUM_CONNECTIONS) Wscript.Echo errReturn loop oText.Close
Ligne 57 vide, écris MsgBox oText.ReadLine, vbInformations ,recopies ce que tu vois, donne nous cette phrase.
vbInformation pas de s à la fin :oops:
Lorsque la msgbox apparaît il est écrit Batch et immédiatement après ça passe à la donnée suivante dans le texte.
Edit : la donnée suivante apparaît dans le wscript.echo.
:aie:
Peux tu ouvrir le fichier C:\" & CreateFolder & "\" & CreateFile avec le bloc note, faire un copier/coller, et nous mettre une ou 2 ligne.
Bonjour,
Bon du coup, MateoFalcon, pour qu'on t'aide il va falloir qu'on comprenne quelque chose, c'est le contenu(/le format) de ton fichier en Input : celui qui contient les noms des dossiers à partager.
Effectivement, le code découle du formatage de ce fichier, et on ne peut pas le deviner sans tes explications. (A la limite en invoquant les esprits, mais c'est long, j'ai pas forcément le temps, et puis ça fait peur, tout ça, voilà).
Dans mon exemple plus haut, c'était un fichier csv avec comme séparateur le caractère ";" entre le chemin et le nom du partage.
D'après ton code et tes exemples, il semblerait qu'il n'y ait que le nom du dossier, je me trompe?
Si je ne me trompe pas, voilà un bout de code qui pourrait convenir :
Si ça ne convient pas, reste à toi d'être plus explicite sur ce que tu souhaite faire, comment, et où tu bloques.Code:
1
2
3
4
5
6
7 STR_ROOT_FOLDER = "C:\chemin\" 'emplacement des répertoires à partager Do Until oText.AtEndOfStream strTmpLine = oText.ReadLine ' Pas besoin de "splitter" si il n'y a qu'une entrée et pas de séparateur Wscript.Echo "Partage du répertoire <" & STR_ROOT_FOLDER & strTmpLine & "> avec le nom <" & strTmpLine & ">" errReturn = objNewShare.Create (STR_ROOT_FOLDER & strTmpLine, strTmpLine, FILE_SHARE, MAXIMUM_CONNECTIONS) Wscript.Echo errReturn loop
Bonne continuation