Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problème de définition de variable (Vbs)

5 réponses
Avatar
Eric Galais
Bonjour,

J'ai un soucil en tout debut de script, il se présente comme ceci:

================ Couic ===================
Option Explicit

Dim oSh, FSO

Set oSh = WScript.CreateObject("WScript.Shell")
Set FSO = CreateObject("Scripting.FileSystemObject")
================ Couic ===================
Apres vérification dans le debugger de VBS Factory, j'ai comme erreur:
Description: Variable non définie: 'WScript'

L'erreur pointe sur la ligne correspondant au set oSh (Erreur 500 si ca dit
à quelqun)

J'ai ce problème uniquement en lancant le debugger (F9); en lancant le
script hors VBS factory, rien ne se passe mais aucune insulte à l'écran.

Si besoin je peux vous fournir le reste du script. Je ne l'ai pas mis
intégralement pour éviter de surcharger le message


Merci d'avance

Eric

5 réponses

Avatar
Gilles LAURENT
"Eric Galais" a écrit dans le message de
news:
| Bonjour,

Bonjour,

| Apres vérification dans le debugger de VBS Factory, j'ai comme erreur:
| Description: Variable non définie: 'WScript'

Le débogueur ne peut tester des scripts se référant à l'objet WScript
(lui-même) ...
http://www.astase.com/support/vbsfactory/#main_toc_2.5

| J'ai ce problème uniquement en lancant le debugger (F9); en lancant le
| script hors VBS factory, rien ne se passe mais aucune insulte à
| l'écran.

Rien ne se passe hors du debugger ? Dans ce cas, il faudrait consulter
le reste du script pour être en mesure d'émettre un diagnostique sur ce
problème.

--
Gilles LAURENT
http://glsft.free.fr
Me contacter : http://cerbermail.com/?zoTY7ZkLcD
Avatar
Eric Galais
[...]
Merci Gilles pour le problème du debugger, en fait ca marche bien ce petit
script... à l'exception des noms longs.
Tu m'avais réglé un problème du genre il y a quelques temps avec un osh.Run
= "nom long" problématique.
La, j'ai reproduit ta solution mais cette fois ci avec la fonction
FSO.CopyFile et là c'est le drame.
Je te(vous) joins mon script épuré en commentaires etc.

-------------- Zwing ---------------
Option Explicit
Dim oSh, FSO, Pasteque

Const Correctifs = "Serveurpartagenom long qui pose probleme"

Set oSh = WScript.CreateObject("WScript.Shell")
Set FSO = CreateObject("Scripting.FileSystemObject")

oSh.RegWrite "HKLMSYSTEMCurrentControlSetControlSession ManagerMemory
ManagementPagingFiles", "D:pagefile.sys 0 0", "REG_SZ"

Pasteque = Chr(34) & Correctifs & "Pagefile.reg" & Chr(34)
FSO.CopyFile Pasteque, "C:MasterHelpdeskpagefile.reg"
-------------- Zwing ---------------
Dans la suite du script je fais d'autres copies par FSO.CopyFile pointant
encore sur la constante Correctifs.

Pour palier au probleme, je pourrais faire un oSh.Run "copy...." mais bon
autant utiliser les fonctions prévues à cet effet.

Un petit coup de main serait le bienvenu.

Merci d'avance.

Eric
Avatar
Gilles LAURENT
"Eric Galais" a écrit dans le message de
news:%

[...]
| Tu m'avais réglé un problème du genre il y a quelques temps avec un
| osh.Run = "nom long" problématique.
| La, j'ai reproduit ta solution mais cette fois ci avec la fonction
| FSO.CopyFile et là c'est le drame.

| Pasteque = Chr(34) & Correctifs & "Pagefile.reg" & Chr(34)

Cette technique n'est utilisée que dans le cadre de commandes externes
pour transmettre les guillemets dans la chaîne de caractères. La
fonction interne CopyFile gère correctement les noms longs :
FSO.CopyFile Correctifs & "Pagefile.reg",
"C:MasterHelpdeskpagefile.reg"

--
Gilles LAURENT
http://glsft.free.fr
Me contacter : http://cerbermail.com/?zoTY7ZkLcD
Avatar
Eric Galais
[...]
Cette technique n'est utilisée que dans le cadre de commandes externes
pour transmettre les guillemets dans la chaîne de caractères. La
fonction interne CopyFile gère correctement les noms longs :
FSO.CopyFile Correctifs & "Pagefile.reg",
"C:MasterHelpdeskpagefile.reg"

--
Gilles LAURENT
http://glsft.free.fr
Me contacter : http://cerbermail.com/?zoTY7ZkLcD




Merci Gilles, je teste çà de suite.

Avatar
Eric Galais
"Eric Galais" a écrit dans le message de news:
%
[...]
Cette technique n'est utilisée que dans le cadre de commandes externes
pour transmettre les guillemets dans la chaîne de caractères. La
fonction interne CopyFile gère correctement les noms longs :
FSO.CopyFile Correctifs & "Pagefile.reg",
"C:MasterHelpdeskpagefile.reg"

--
Gilles LAURENT
http://glsft.free.fr
Me contacter : http://cerbermail.com/?zoTY7ZkLcD




Merci Gilles, je teste çà de suite.



Ca marche impécablement bien, j'avais une ligne avec du oSh.Run qui elle en
avait besoin des Chr(34).

Merci encore.
Eric