Probleme avec un script vbs

cs_droopyv Messages postés 20 Date d'inscription lundi 27 janvier 2003 Statut Membre Dernière intervention 27 mars 2009 - 6 juin 2007 à 09:52
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 6 juin 2007 à 12:22
C'est un script qui regarde les fichiers dans des sous repertoires, et doit executer un petit programme md5.exe ( ce programme sert juste a faire une signature d'un fichier, pour le verifier plus tard, la signature est un nombre de 15 caracteres)

Mon probleme est que je n'arrive pas a mettre la signature dans une variable, sachant que j'utilise la commande sh.run

SI vous avez une idée, merci

Dim Fso, Fld, Txt
   Set Sh = WScript.CreateObject("WScript.Shell")
    Set Fso = CreateObject("Scripting.FileSystemObject")
   Set Fld = Fso.GetFolder("f:\essai")
   

For Each subFld In Fld.SubFolders
 
    For Each Fl In subFld.Files
    chemin =Fl.path
    nom = fl.name

St = nom
nPosition = InStr(st, ".")
total = Left(St, nPosition)

    chm2=FSO.GetParentFolderName(chemin)
    'set objfile = fso.createtextfile(chm2 &"/"&total &"md5")
    'Sh.Run "d:\essai\md5.exe "&Fl.name& " >"&chm2 &"/"&total &"md5"
    
sh.run "cmd "
'sh.sendkeys "f:\essai\md5.exe "&chm2&""&Fl.name& " >"&chm2 &""&total &"md5 {enter}"

    Next
   
Next

5 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
6 juin 2007 à 11:40
pas besoin de poster n fois ton probleme, merci.

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
6 juin 2007 à 11:45
Lis la doc, ca peut ete utile, plutot que de jouer a le faire a tatons...

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/5593b353-ef4b-4c99-8ae1-f963bac48929.asp

voir propriété StdOut de l'objet WschScriptExec renvoyé par la méthode Exec de ton objet sh

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
6 juin 2007 à 11:48
Salut,

L'indentation pique les yeux...

Pas besoin de créer le fichier avec createtextfile si c'est pour faire une redirection (>) la ligne suivante...

Pas besoin de St, pas besoin de nom, pas besoin de chemin ni de chm2...
Le séparateur de nom de fichier, c'est \ et pas /

Ca nous donne ça :

' Pour tous les sous dossiers
For Each subFld In Fld.SubFolders
 
    ' Pour tous les fichiers du sous dossier
    For Each Fl In subFld.Files

       ' Récupération du nom du fichier sans l'extension
       nPosition = InStr(fl.name, ".")
       total = Left(fl.name, nPosition)
      
       Sh.Run "d:\essai\md5.exe " & Fl.Path & " >" & subFld. Path & "" & total & "md5"
   
    Next
Next

Maintenant, intéressons nous à la ligne critique.
Il faut toujours placer des guillemets autour d'un chemin contenant des espaces.

Donc plutôt quelque chose comme ça :

Sh.Run "d:\essai\md5.exe """ & Fl.Path & """>"""" & subFld.Path & "" & total & "md5"""

Faire un Msgbox de la ligne pour voire si ça rend bien :
MsgBox"d:\essai\md5.exe """ & Fl.Path & """>""" & subFld.Path & "" & total & "md5"""

Devrais afficher :

d:\essai\md5.exe "c:\parent\sub\machin.txt">"c:\parent\sub\machinmd5"

Bonne chance.
0
cs_droopyv Messages postés 20 Date d'inscription lundi 27 janvier 2003 Statut Membre Dernière intervention 27 mars 2009
6 juin 2007 à 12:12
waouh c sympa merci

et deosle pour le deuxieme post

merci encore
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
6 juin 2007 à 12:22
pas obligé de passer par un fichier...(cf mon post ci dessus)

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0