Problème script
learn451
-
pijaku Messages postés 13513 Statut Modérateur -
pijaku Messages postés 13513 Statut Modérateur -
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
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:
- Problème script
- Script vidéo youtube - Guide
- Ghost script - Télécharger - Polices de caractères
- Mas script - Accueil - Windows
- Script cmd - Guide
- Script download - Télécharger - Édition & Programmation
3 réponses
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...
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...
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
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
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...
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...