Bonjour,

Actuellement, j'ai un script qui utilise un intermédiaire .bat pour donner un certain résultat. J'aimerais éviter d'utiliser des fichiers à droite et à gauche afin de tout avoir dans mon seul fichier vbs. J'exécute le vbs j'ai le résultat sans faire appel à des intermédiaires (mon fichier .bat). C'est pour cette raison que j'ai essayé d'intégrer cette commande .bat dans mon fichier vbs. Voici le contenu du fichier .bat :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
@ECHO OFF
wmic /output:D:\Programmesliste.txt product get name ' Donne la liste des logiciels installés sur la machine locale
type D:\Programmesliste.txt | find /v "Name" > D:\ProgrammesListe.csv ' Recherche dans D:\Programmesliste.txt "Name" afin d'omettre la ligne le contenant et de copier le fichier sans celui-ci sur D:\ProgrammesListe.csv
 
type D:\Inventaire_logiciel.csv > D:\Inventaire_logiciel2.csv ' Copie le contenu de D:\Inventaire_logiciel.csv dans D:\Inventaire_logiciel2.csv
type D:\Programmesliste.csv >> D:\Inventaire_logiciel2.csv ' Concatène D:\Programmesliste.csv directement à la suite dans D:\Inventaire_logiciel2.csv (sachant que le séparateur est le retour à la ligne)
Ce fichier .bat fonctionne correctement, et me donne une liste plutôt exhaustive des logiciels que j'ai installé, mais une fois intégré dans le script .vbs j'ai quelques soucis :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
Set objShell = CreateObject("Wscript.Shell")
'construction cumulatif de ligne de commande
strCommand = "@ECHO OFF" & vbcrlf  ' "vbcrlf" est un retour à la ligne
strCommand = strCommand & "wmic /output:D:\Programmesliste.txt product get name" & vbcrlf 
strCommand = strCommand & "type D:\Programmesliste.txt | find /v ""Name"" > D:\ProgrammesListe.csv" & vbcrlf 
strCommand = strCommand & "type D:\Inventaire_logiciel.csv > D:\Inventaire_logiciel2.csv" & vbcrlf
strCommand = strCommand & "type D:\Programmesliste.csv >> D:\Inventaire_logiciel2.csv"
wscript.echo strCommand  ' <---temporairement (pour tester si la ligne de commande est correcte ou non)
objShell.Run strCommand, 1, True  ' 1 pour afficher la console et 0 pour la cacher
Au final, en terme de syntaxe, j'obtiens le même chose qu'avec le .bat, mais j'ai une erreur à la ligne 9 (soit à la ligne objShell) qui me spécifie que le fichier est introuvable... alors pourtant que ça marche quand j'exécute le fichier .bat, mais pas le .vbs.

Si quelqu'un pouvait me dire ce qui cloche.

Merci !