dareman
Messages postés39Date d'inscriptionmercredi 15 avril 2009StatutMembreDernière intervention10 janvier 2011
-
24 avril 2009 à 13:55
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 2021
-
28 avril 2009 à 11:17
bonjour à tous,
je voudrai savoir comment on lance une ligne de commande bach dans un programme vbs.
j'ai essayer de la manière suivante :
Set objShell = WScript.CreateObject("WScript.Shell")
Set objExecObject = objShell.Exec("cmd /c chdir")
Wscript.echo(objExecObject.StdOut.Read(30))
cela marche mais je n'arrive pas à récupérer et stocker dans une chaine le contenu de objExecObject
la troisième ligne me confirme que l'objet objExecObject contient bien l'information recherchée
dareman
Messages postés39Date d'inscriptionmercredi 15 avril 2009StatutMembreDernière intervention10 janvier 2011 24 avril 2009 à 15:22
lorsque je fait sChaineRecuperee = objExecObject.StdOut.Read(30), j'obtient la chaine suivante E:\stage\LDAP soit ce que je veut sauf que lorsque je veut lui concaténer un caractére j'ai alors un probléme
je m'explique si je fait sChaineRecuperee = objExecObject.StdOut.Read(13) & "" g bien E:\stage\LDAP\
en revanche avec objExecObject.StdOut.Read(30) j'obtient :
E:\stage\LDAP
\
donc aprés je ne trouve pas le fichier a ouvrir vu que le path n'est pas valide
j'ai essayer de supprimer les espaces sChaineRecuperee = objExecObject.StdOut.Read(30)
sChaineRecuperee = RTrim(sChaineRecuperee)
sChaineRecuperee = sChaineRecuperee & ""
mais cela ne marche pas, sachant que la taille du path n'est pas fixe comment puis je tester la taille de la chaine à récupée dans objExecObject ?
merci d'avance
dareman
Messages postés39Date d'inscriptionmercredi 15 avril 2009StatutMembreDernière intervention10 janvier 2011 24 avril 2009 à 15:30
30 c'était uniquement pour effectué un test, effectivement je n'avais pas pensé que cela peut être un caractère ascii et non des espace je vai tester ça merci une fois de plus, de m'avoir éclairé de tes lumières
dareman
Messages postés39Date d'inscriptionmercredi 15 avril 2009StatutMembreDernière intervention10 janvier 2011 27 avril 2009 à 09:13
salut jean-marc,
merci pour ton ça marche maintenant grâce à toi, je testé caractère par caractère avec mid, en effectuant un test pour voir si différent de vbCrLf
mais sa ne marchai pas très bien, du coup merci à toi.
ps: si vous connaissez un site ou l'on trouve de la doc vbs je suis preneur, parce que jusqu'à'à présent je n'arrive pas trop à trouver et du coup galère pas mal à recréer des fonction qui existent déjà dans le language.
dareman
Messages postés39Date d'inscriptionmercredi 15 avril 2009StatutMembreDernière intervention10 janvier 2011 28 avril 2009 à 11:00
salu renfield,
mon Mid était tout ce qu'il ya de plus classique il ressemblai à peu prêt à sa:
i=1
chaine=""
while (mid (sChaineRecuperee,i,1) <> "")
if (mid (sChaineRecuperee,i,1) <> vbCrLf) then
chaine = chaine & mid (sChaineRecuperee,i,1)
i=i+1
end if
wend
voila le probléme c'est qu'il rentrés toujours dans le if, mais avec le code de jmo sa marche maintenant
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202171 28 avril 2009 à 11:17
c'est bien ce que je pensais...
mid (sChaineRecuperee,i,1) <> vbCrLf
sera TOUJOURS vrai, quelle que soit ta chaine en entrée...
en effet, tu compare une chaine d'un cararactère avec VbCrLf, qui equivaut à deux caractères...