Bonjours :)
J'ecrie un script en mode console, et je cherche à netoyer ma fenetre dos.
Apres de nombreuse recherche je ne trouve aucun equivalent à la commande DOS "cls" sous Vbscript !
Elle n'existe peu etre pas ? :aie:
Version imprimable
Bonjours :)
J'ecrie un script en mode console, et je cherche à netoyer ma fenetre dos.
Apres de nombreuse recherche je ne trouve aucun equivalent à la commande DOS "cls" sous Vbscript !
Elle n'existe peu etre pas ? :aie:
Sur le Chat de developpez mon ami pseudo code a proposé
Hélas cette suite de commande est executé à la fin du scritp, et non à l'endroit indiqué.Code:
1
2
3
4 Set shell = WScript.CreateObject("WScript.Shell") shell.SendKeys "CLS + {ENTER}" Set shell = Nothing
Certainement que le shell est occupé par le déroulement du script, et qu'il ne peu que l'executer à la fin :king:
et tu l'as met ou dans ton script cette commande ?
Voici ou je le place, et ou je voudrais que l'action CLS s'effectue:
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 '*********************************************************** WScript.Echo "" WScript.stdout.Write "Masque sous réseau: " mask = WScript.StdIn.Readline WScript.Echo "" WScript.StdOut.Write "Passerele: " gateway = WScript.StdIn.ReadLine WScript.Echo "" WScript.StdOut.Write "Nom du switch: " nomswitch = WScript.StdIn.ReadLine WScript.Echo "" WScript.StdOut.Write "Lieux d'hebergement: " location = WScript.StdIn.ReadLine WScript.Echo "" Set shell = WScript.CreateObject("WScript.Shell") shell.SendKeys "CLS + {ENTER}" Set shell = Nothing '*********************************************************** WScript.Echo "" WScript.Stdout.write "IP: " &ip WScript.Echo "" WScript.Stdout.write "Masque: " &mask WScript.Echo "" WScript.Stdout.write "Passerele: " &gateway WScript.Echo "" WScript.Stdout.write "Lieux : " &location WScript.Echo "" WScript.Stdout.write "Nom du switch: " &location WScript.Echo "" '==========================================================
Basiquement, c'est impossible. Si tu as WSH v5.6 ou supérieur, tu peux utiliser une fonction beaucoup moins élégante du stylequi ne fera que simuler l'effacement en faisant défiler l'écran vers le bas. Le désavantage est que cette fonction laisse le curseur en bas de l'écran.Code:WScript.StdOut.BlankLines 100
Donc réelement il n'y a pas d'equivalence de la commande DOS cls en VBS?
La seule façon d'effacer l'écran dans une console DOS en utilisant l'hôte WSH VBScript que j'aie pu trouver nécessite la création d'un objet ActiveX qui appelerait des API Win32. Cela permettrait d'obtenir la taille de la console DOS, calculer le nombre de caractère dans cette fenêtre et écrire des caractères vides avec une autre API. Une tâche certes fastidieuse.
VBScript ne supporte pas de clear screen car VBScript n'est pas un environnement "stand alone", il peut être utilisé depuis plusieurs hôtes différents (IIS, IE, WSH..) et effectuer un clear screen sur chacun de ces hôtes requiert une action à chaque fois différente.
D'accord, merci pour ces info
Et pour clore ce topic qu'entand tu par "stand alone" ?
Stand alone veut dire qu'il peut s'exécuter de lui-même. Or, un script nécessite un hôte pour s'exécuter. Cet hôte est soit le shell windows (WSH), soit IE (dans une page HTML <script language="VBScript">) soit IIS (dans une page ASP <%@Language="VBScript"%>). C'est comme pour un script PHP ou un script Perl : ils ont tous besoin d'un environnement d'exécution, d'un programme qui va les exécuter. C'est pourquoi on les qualifie de script d'ailleurs et non de programmes.
Bref un fichier dans un langage particulier qui précise à un programme les actions qu'il doit faire.
Un interpréteur de script est le programme.
Un script est un scénario d'exécution pour cet interpréteur.
Bon bha ça mérite d'etre clair maintenant :king:
Merci à vous de m'avoir eclairé sur ce sujet, j'ai eu beaucoup de mal à trouver réponses !
J'éspere un jours pourvoir vous aider :aie:
Byebye