Problème script

Fermé
learn451 - 23 nov. 2012 à 11:51
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 27 nov. 2012 à 10:22
Bonjour,

je débute en script vbs et j'ai un problème dans ma boucle until :
dim i
DIM fso
set fso = CreateObject("Scripting.FileSystemObject")
i = 3
Do until i = 1
If (fso.FileExists("C:\Program Files\citrix\ICA Client\pn.exe")) Then
i = 3
else
shell.Open("c:\citrix.bat")
i = 1
end if

loop

je ne comprend pas pourquoi mon script passe dans le if et dans le else
je pense que sa viens sans doute de ma syntaxe pour rechercher si le fichier existe
pouvez vous m'aider merci
A voir également:

3 réponses

Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 92
23 nov. 2012 à 11:58
essaie avec Do While i = 1 à la place de Do Until i = 1
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 745
23 nov. 2012 à 12:55
Bonjour,

Votre boucle est mal conçue.

Vous dites :
>i = 3
>Jusqu'à ce que i soit égal à 1 (Do Until i = 1)
>Si le fichier existe alors i = 3
>Sinon, on ouvre un fichier .bat et i = 1

Donc, en gros, si ton fichier "C:\Program Files\citrix\ICA Client\pn.exe" n'existe pas, i sera toujours égal à 3 et donc ta boucle sera infinie (jusqu'à ce que i soit égal à 1, cela n'arrivera jamais...)

Par contre, s'il existe, alors pas de souci :
>i = 3
>Fait jusqu'à ce que i = 1 ==> comme i = 3 on le fait
>Test IF
>le fichier existe donc Else i = 1 ==> on sort de la boucle Do Loop...

Après, pour plus de précisions, dis nous ce que tu souhaites faire...
0
C'est le but en fait pijaku, je veux que tant que ce fichier existe il passe dans le if

en fait j'ai enlevé dans le if que si le pn.exe existe je lance une désinstall.

Donc tant que le fichier existe je veux qu'e le script passe dans la boucle.

Donc en fait si le fichier n'existe pas il devrait passer dans le else et ensuite être égal à 1 et sortir. Mais j'ai l'impression qu'il passe dans le else même si le fichier existe et je comprend pas pourquoi
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 745
27 nov. 2012 à 10:22
Salut,

Je ne vonnais pas vb. Par contre, j'ai testé ton code sous vba, juste pour voir... Et bien ça fonctionne.
Si le fichier existe, il passe dans le If mais pas le Else, s'il n'existe pas, il passe dans le else...
Par contre, si le fichier existe et que je ne le supprime pas dans le If, la boucle est infinie...
0