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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Chemin UNC avec variable d'environement

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Chemin UNC avec variable d'environement

n°2061989
skum
you'll never walk alone
Posté le 09-03-2011 à 11:15:51  profilanswer
 

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.
mood
Publicité
Posté le 09-03-2011 à 11:15:51  profilanswer
 

n°2061990
skum
you'll never walk alone
Posté le 09-03-2011 à 11:17:30  profilanswer
 

avec %USERPROFILE% sa marcherai?
 
genre : D:\Documents and Settings\%USERPROFILE%\Bureau\test\mail2.dir


---------------
"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.
n°2062304
skum
you'll never walk alone
Posté le 10-03-2011 à 15:16:51  profilanswer
 

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?


---------------
"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.
n°2062314
SuppotDeSa​Tante
Aka dje69r
Posté le 10-03-2011 à 15:54:32  profilanswer
 

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" )  


Message édité par SuppotDeSaTante le 10-03-2011 à 15:55:08

---------------
Soyez malin, louez entre voisins !
n°2062317
skum
you'll never walk alone
Posté le 10-03-2011 à 16:00:45  profilanswer
 

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


---------------
"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.
n°2062320
SuppotDeSa​Tante
Aka dje69r
Posté le 10-03-2011 à 16:10:30  profilanswer
 

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é ?


Message édité par SuppotDeSaTante le 10-03-2011 à 16:11:13

---------------
Soyez malin, louez entre voisins !
n°2062322
SuppotDeSa​Tante
Aka dje69r
Posté le 10-03-2011 à 16:15:27  profilanswer
 

Bon je ne suis pas sur de tout saisir, mais deja quelque chose comme ca fonctionne :

Code :
  1. Sub skum()
  2. Const ForReading = 1, ForWriting = 2
  3. Set WshNetwork = CreateObject("WScript.Network" )
  4. Set WshShell = CreateObject("WScript.Shell" )
  5. Set fso = CreateObject("Scripting.FileSystemObject" )
  6. Dim f, Nom_utilisateur
  7. Nom_utilisateur = WshNetwork.UserName
  8. Set f = fso.OpenTextFile("C:\Documents and Settings\" & Nom_utilisateur & "\Bureau\test\mail.dir", ForWriting, True)
  9. f.write ("D:\Documents and Settings\" & Nom_utilisateur & "\Bureau\test\mail2.dir" )
  10. End Sub


 
Ca me créé bien un fichier mail.dir avec dedans la chaine demandée.


---------------
Soyez malin, louez entre voisins !
n°2062324
skum
you'll never walk alone
Posté le 10-03-2011 à 16:17:56  profilanswer
 

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 ?


---------------
"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.
n°2062329
SuppotDeSa​Tante
Aka dje69r
Posté le 10-03-2011 à 16:26:36  profilanswer
 

Je le fais dans Excel :jap:
autocomplétion toussa :O 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...


Message édité par SuppotDeSaTante le 10-03-2011 à 16:29:33

---------------
Soyez malin, louez entre voisins !
n°2062334
SuppotDeSa​Tante
Aka dje69r
Posté le 10-03-2011 à 16:35:37  profilanswer
 

Je confirme, dans un fichier vbs cela fonctionne tres bien, et sans erreur :
 

Code :
  1. Const ForReading = 1, ForWriting = 2
  2. Set WshNetwork = CreateObject("WScript.Network" )
  3. Set WshShell = CreateObject("WScript.Shell" )
  4. Set fso = CreateObject("Scripting.FileSystemObject" )
  5. Dim f, Nom_utilisateur
  6. Nom_utilisateur = WshNetwork.UserName
  7. Set f = fso.OpenTextFile("C:\Documents and Settings\" & Nom_utilisateur & "\Bureau\test\mail.dir", ForWriting, True)
  8. f.write ("D:\Documents and Settings\" & Nom_utilisateur & "\Bureau\test\mail2.dir" )


---------------
Soyez malin, louez entre voisins !
mood
Publicité
Posté le 10-03-2011 à 16:35:37  profilanswer
 

n°2062336
skum
you'll never walk alone
Posté le 10-03-2011 à 16:45:05  profilanswer
 

voila mon code final:
 

Code :
  1. Const ForReading = 1, ForWriting = 2
  2. Set WshNetwork = WScript.CreateObject("WScript.Network" )
  3. Set WshShell = WScript.CreateObject("WScript.Shell" )
  4. Set fso = CreateObject("Scripting.FileSystemObject" )
  5. Dim fso, f, f2, Nom_utilisateur
  6. Nom_utilisateur = WshNetwork.UserName
  7. Set f = fso.OpenTextFile("C:\Documents and Settings\"& Nom_utilisateur&"\Lotus\Notes\Data\mail.dir", ForWriting,true)
  8. f.write("D:\Documents and Settings\"& Nom_utilisateur&"\Lotus\Notes\Data\\Mail" )
  9. Set f2 = fso.OpenTextFile("C:\Documents and Settings\"& Nom_utilisateur&"\Lotus\Notes\Data\archive.dir", ForWriting,true)
  10. f2.write("D:\Documents and Settings\"& Nom_utilisateur&"\Lotus\Notes\Data\Archive" )


 
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  [:spanotfote]


---------------
"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.
n°2062337
skum
you'll never walk alone
Posté le 10-03-2011 à 16:45:24  profilanswer
 

en tout cas merci pour ton 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.
n°2062339
SuppotDeSa​Tante
Aka dje69r
Posté le 10-03-2011 à 16:49:49  profilanswer
 

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 :
  1. Const ForReading = 1, ForWriting = 2
  2. Set WshNetwork = CreateObject("WScript.Network" )
  3. Set WshShell = CreateObject("WScript.Shell" )
  4. Set fso = CreateObject("Scripting.FileSystemObject" )
  5. Dim  f, f2, Nom_utilisateur
  6. Nom_utilisateur = WshNetwork.UserName
  7. Set f = fso.OpenTextFile("C:\Documents and Settings\" & Nom_utilisateur & "\Lotus\Notes\Data\mail.dir", ForWriting,true)
  8. f.write("D:\Documents and Settings\" & Nom_utilisateur & "\Lotus\Notes\Data\\Mail" )
  9. Set f2 = fso.OpenTextFile("C:\Documents and Settings\" & Nom_utilisateur & "\Lotus\Notes\Data\archive.dir", ForWriting,true)
  10. f2.write("D:\Documents and Settings\" & Nom_utilisateur & "\Lotus\Notes\Data\Archive" )


 
http://www.wilogo.com/blog/wp-content/uploads/2009/03/nouveau_lesieur.png


Message édité par SuppotDeSaTante le 10-03-2011 à 16:52:29

---------------
Soyez malin, louez entre voisins !
n°2062345
skum
you'll never walk alone
Posté le 10-03-2011 à 17:06:35  profilanswer
 

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


---------------
"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.
n°2062375
SuppotDeSa​Tante
Aka dje69r
Posté le 10-03-2011 à 20:08:57  profilanswer
 

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...


---------------
Soyez malin, louez entre voisins !

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

  Chemin UNC avec variable d'environement

 

Sujets relatifs
[Php] Passe une variable et un int dans un TextareaVBA Excel 2007 Problème de variable objet. Erreur 91
[resolu] Probleme de variable "tout" sur un formulaire de recherche[prog réseaux]serveur multithread et variable globales
Mettre résultat d'un fichier php externe dans une variable[RESOLU]
Extraire les noms des fichiers pour les utiliser en variableProbleme de variable
Récupérer une variable Javascript avec AJAX[Résolu][PHP/SQL] Ajout variable données inscrite dans bdd par tierce
Plus de sujets relatifs à : Chemin UNC avec variable d'environement


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