Problème de passage de param^tere dans un shell

Résolu
tomykiller Messages postés 3 Date d'inscription mercredi 7 décembre 2005 Statut Membre Dernière intervention 12 mars 2009 - 12 mars 2009 à 12:12
tomykiller Messages postés 3 Date d'inscription mercredi 7 décembre 2005 Statut Membre Dernière intervention 12 mars 2009 - 12 mars 2009 à 15:58
Bonjour à tous !
Voilà j'expose mon petit problème
Je voudrais crée un script qui lance un programme (LogParser) dans tous les fichiers présent dans un dossier.
Voici mon script :

On error Resume Next
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set MonRepertoire = objFSO.GetFolder("d:\Logfile")
Set CollectFichier = MonRepertoire.Files
Set Shell = Wscript.CreateObject("WScript.Shell")
For Each Fichier in CollectFichier
    
    Shell.Run "D:\LogParser.exe -i:TEXTLINE ""SELECT Text FROM d:"""&Fichier.Name&"""WHERE Text LIKE '%Found%'"""

Next

Jusque la ca va ! Le programme est pour le passage des paramêtres au niveau de logparer !
Je lance en fait mon programme via shell.Run : ca fonctionne
Le souci c'est pour passer les parâmêtres à ce programme car le SELECT doit être précédé de " et comme vb interprète que c'est la fin du Shell.Run ... je sais pas trop comment faire !

En fait pour être clair, je veux exécuter D:\LogParser.exe -i:TEXTLINE "SELECT Text FROM d:\NomduFichier WHERE Text LIKE '%Found%'"
Cette requête fonctionne en command dos (à condition bein sur que le nom du fichier soit correct !)
La difficulté consiste à récuper le nom du fichier dans mon script d'ou le &Fichier.Name& car cette variable est dans le vb...
Bref si vosu pouvez m'aider c'est super sympa. Je suis pas loin du résultat je pense !!

4 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
12 mars 2009 à 14:42
la méthode Exec te permettrait même de récupérer directement le texte, sans l'intermédiaire d'un fichier...

http://msdn.microsoft.com/en-us/library/cbxxzwb5(VS.85).aspx
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
12 mars 2009 à 13:07
il faut baliser les String avec une guillemet au debut, une autre a la fin

pour afficher une guillemet dans une string, il faut la doubler.

donc ta chaine me dérange, forcément....

"D:\LogParser.exe -i:TEXTLINE ""SELECT Text FROM d:"""&Fichier.Name&"""WHERE Text LIKE '%Found%'"""

tu obtiens:

D:\LogParser.exe -i:TEXTLINE "SELECT Text FROM d:"nomdufichier"WHERE Text LIKE
'%Found%'"

tu as trop mis de guillemets...

"D:\LogParser.exe -i:TEXTLINE ""SELECT Text FROM d:" & Fichier.Name &" WHERE Text LIKE '%Found%'"""
0
tomykiller Messages postés 3 Date d'inscription mercredi 7 décembre 2005 Statut Membre Dernière intervention 12 mars 2009
12 mars 2009 à 14:37
Ok super merci beaucoup ca marche désormais ! par contre il y a un truc qui marche pas c'ets si je veux mettre mon résultat dans un fichier txt ! et la je comprends pas car j'ai débugué avec msgbox pour voir ce qu'il lance et ca me parait correct :

Shell.Run "D:\LogParser -i:TEXTLINE ""SELECT Text FROM d:\Logfile" & Fichier.Name & " WHERE Text LIKE '%Found%'"" > d:\resultat.txt"
0
tomykiller Messages postés 3 Date d'inscription mercredi 7 décembre 2005 Statut Membre Dernière intervention 12 mars 2009
12 mars 2009 à 15:58
je vais étudier ca merci de ton aide
0
Rejoignez-nous