Chemin UNC avec variable d'environement - VB/VBA/VBS - Programmation
Marsh Posté le 09-03-2011 à 11:17:30
avec %USERPROFILE% sa marcherai?
genre : D:\Documents and Settings\%USERPROFILE%\Bureau\test\mail2.dir
Marsh Posté le 10-03-2011 à 15:16:51
bon j'ai presque réussi :
Const ForReading = 1, ForWriting = 2
Set WshNetwork = WScript.CreateObject("WScript.Network" )
Set WshShell = WScript.CreateObject("WScript.Shell" )
Set fso = CreateObject("Scripting.FileSystemObject" )
Dim fso, f, Nom_utilisateur
Nom_utilisateur = WshNetwork.UserName
Set f = fso.OpenTextFile("D:\Documents and Settings\ & Nom_utilisateur\Bureau\test\mail.dir", ForWriting,true)
f.write("D:\Documents and Settings\ & Nom_utilisateur\Bureau\test\mail2.dir" )
j'ai une erreure, je doit mal utiliser le symbole "&".
une petite idée de tous les lurkers la?
Marsh Posté le 10-03-2011 à 15:54:32
Nom_utilisateur etant le nom d' une variable je mettrais plus un truc comme ca :
Set f = fso.OpenTextFile("D:\Documents and Settings\" & Nom_utilisateur & "\Bureau\test\mail.dir", ForWriting,true)
f.write("D:\Documents and Settings\" & Nom_utilisateur & "\Bureau\test\mail2.dir" )
Marsh Posté le 10-03-2011 à 16:00:45
j'ai testé comme sa :
Const ForReading = 1, ForWriting = 2
Set WshNetwork = WScript.CreateObject("WScript.Network" )
Set WshShell = WScript.CreateObject("WScript.Shell" )
Set fso = CreateObject("Scripting.FileSystemObject" )
Dim fso, f, Nom_utilisateur
Nom_utilisateur = WshNetwork.UserName
Set f = fso.OpenTextFile("D:\Documents and Settings\"& Nom_utilisateur&"\Bureau\test\mail.dir", ForWriting,true)
f.write("D:\Documents and Settings\"& Nom_utilisateur&"\Bureau\test\mail2.dir" )
j'ai un problème en ligne 2 maintenant
Marsh Posté le 10-03-2011 à 16:10:30
C'est a dire ?
ici : Set WshNetwork = WScript.CreateObject("WScript.Network" )
?
En fait je ne pige pas... Ce script s'execute où ? En local ?
Ou par le biais du reseau tu veux savoir l'utilisateur connecté ?
Marsh Posté le 10-03-2011 à 16:15:27
Bon je ne suis pas sur de tout saisir, mais deja quelque chose comme ca fonctionne :
Code :
|
Ca me créé bien un fichier mail.dir avec dedans la chaine demandée.
Marsh Posté le 10-03-2011 à 16:17:56
ouai c'est bon sa a fonctionné en fait, il m'a mis une erreur sur la ligne 2, mais quand je le lance sa créer bien le fichier.
par contre a quoi sert le sub ?
Marsh Posté le 10-03-2011 à 16:26:36
Je le fais dans Excel
autocomplétion toussa plus rapide que le bloc note.
Pour l'erreur : WScript.CreateObject("WScript.Network" )
Set WshNetwork = CreateObject("WScript.Network" ) ne fonctionne pas ?
Parce que là, ton utilisation de WSCript me parait douteuse...
Marsh Posté le 10-03-2011 à 16:35:37
Je confirme, dans un fichier vbs cela fonctionne tres bien, et sans erreur :
Code :
|
Marsh Posté le 10-03-2011 à 16:45:05
voila mon code final:
Code :
|
il fonctionne bien, par contre dans le debug j'ai toujours une erreur sur "Set WshNetwork = WScript.CreateObject("WScript.Network" )"
mais sa marche quand meme alors je sais pas si c'est important
Marsh Posté le 10-03-2011 à 16:45:24
en tout cas merci pour ton aide
Marsh Posté le 10-03-2011 à 16:49:49
Mais tu ne lis pas ou bien ??
Il ne faut pas mettre :
Set WshNetwork = WScript.CreateObject("WScript.Network" )
Mais il FAUT METTRE :
Set WshNetwork = CreateObject("WScript.Network" )
Ensuite, si tu regardes mon code je ne redéclare pas fso, puisque tu fais un Set juste avant.
Tu ne vois pas la différence entre les deux ??
Essaie donc comme ca, tu verras pas d'erreur c'est lesieur :
Code :
|
Marsh Posté le 10-03-2011 à 17:06:35
ouai nikel sa marche aussi comme sa,
par contre a quoi il sert le WScript du coup?
mon erreur était pas gênante finalement puisque sa fonctionne pareil
Marsh Posté le 10-03-2011 à 20:08:57
Bah tu utilises une methode de WScript pour creer un objet d'une librairie WScript...
C'est illogique... C'est comme si tu disais "je veux ouvrir le tiroir de la commode qui est dans la commode"... Ca n'a pas de sens...
Marsh Posté le 09-03-2011 à 11:15:51
Bonjour,
Je dois faire un scripte en VBS pour créer un fichier donnant un chemin UNC.
Jusque la je pense avoir reussi, mais sa se complique car je dois mettre un chemin vers le profil utilisateur connecté, donc diffèrent celon l'utilisateur.
Étant très débutant en prog je viens vous demander de l'aide
voici mon scripte pour le moment :
Const ForReading = 1, ForWriting = 2
Set WshShell = WScript.CreateObject("WScript.Shell" )
Dim fso, f
Set fso = CreateObject("Scripting.FileSystemObject" )
Set f = fso.OpenTextFile("D:\Documents and Settings\Administrateur\Bureau\test\mail.dir", ForWriting,true)
f.write("D:\Documents and Settings\Administrateur\Bureau\test\mail2.dir" )
je me suis aidé d'autre scripte pour faire celui ci. J'arrive a créer un nouveau fichier, mais je sais pas comment le placer dans le profil approprié.
merci de votre aide
---------------
"Mundi placet et spiritus minima", ça n'a aucun sens mais on pourrait très bien imaginer une traduction du type : "Le roseau plie, mais ne cède... qu'en cas de pépin" ce qui ne veut rien dire non plus.