Redirirection cmd DOS vers Fichier Text

cs_phanou Messages postés 2 Date d'inscription vendredi 4 avril 2003 Statut Membre Dernière intervention 23 juin 2004 - 22 juin 2004 à 13:20
cs_phanou Messages postés 2 Date d'inscription vendredi 4 avril 2003 Statut Membre Dernière intervention 23 juin 2004 - 23 juin 2004 à 13:04
Salut à tous,

Voilà maintenant qq temps que je cherche mais ne trouve pas.

Depuis VBA, je veux lister le contenu d'une archive (M:\ventes\ventes.zip) et rediriger le resultat dans un fichier text (M:\ventes\test.txt) pour analyse ensuite.

Je suis parti sur la commande suivante :
C:\Program Files\Winzip\wzzip.exe -vb
"M:\ventes\ventes.zip" > "M:\ventes\test.txt"
Cette commande marche très bien dans la console DOS.

Par contre, le code Shell("Chr(34) & "C:\Program Files\WinZip\wzzip.exe" & Chr(34) & " -vb " &
Chr(34) & "m:\ventes\ventes.zip" & Chr(34) & " > " &
chr(34) & "M:\ventes\test.txt" & chr(34)) ne fonctionne pas

Alors que le code Shell("Chr(34) & "C:\Program Files\WinZip\wzzip.exe" & Chr(34) & " -vb " &
Chr(34) & "m:\ventes\ventes.zip" & Chr(34)) marche bien

Pouvez-vous m'aider svp...

2 réponses

cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
22 juin 2004 à 23:51
Salut phanou
Astuce : Quand tu veux insérer un " à l'intérieur d'une chaîne, il te suffit d'en mettre deux l'un derrière l'autre :
Print "Bonjour ""phanou"" et coucou" donne
Bonjour "phanou" et coucou

Sinon, pour ta commande DOS :
Essaye de ne pas mettre d'espaces derrière le signe > de redirection de sortie.
La commande deviendrait :
Shell("C:\Program Files\WinZip\wzzip.exe -vb ""m:\ventes\ventes.zip"" >""M:\ventes\test.txt""")

Regarde aussi de plus près : le Chr(34) juste au début de la commande du Shell (dans ton exemple) me paraît douteux.

Si, dans la syntaxe du Shell, tu ajoutes un deuxième paramètre Shell ("Ta commande", 2), la fenêtre DOS ne devrait apparaitre qu'en icone (plus joli).
Essaye aussi vbHide pour ne rien avoir du tout, mais pas sur que VBA l'accepte
6 = vbMinimizeNoFocus
4 = vbNormalNoFocus
3 = vbMaximizedFocus
2 = vbMinimizedFocus
1 = vbNormalFocus
0 = vbHide

Vala
Jack
0
cs_phanou Messages postés 2 Date d'inscription vendredi 4 avril 2003 Statut Membre Dernière intervention 23 juin 2004
23 juin 2004 à 13:04
Salut,

Merci pour ta réponse...

J'ai essayé ta commande mais malheureusement, elle ne fonctionne pas...

Pour cela, il faut rajouter l'instruction cmd /C dans la commande.

Cela donne en effet : Shell "cmd /C C:\Progra~1\WinZip\wzzip.exe -vb " & fichier_zip & " > " & fichier_Txt

où :
fichier_Txt = Chr(34) & "M:\ventes 2\toto.txt" & Chr(34)
fichier_zip = Chr(34) & "M:\ventes 2\ventes.zip" & Chr(34)

A noter que j'ai mis un espace dans un nom de répertoire "\ventes 2" pour faire tous les tests.

Avec la commance cmd /c, ca marche mais qu'ne windows 2000 et XP. Sinon, avec command /c, ca ne marche pas tout le temps.

Phanou
0