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

Ou me suis je planté ???

2 réponses
Avatar
Dom
Bonjour,

Je cherche à lancer via WSH la commande Set pour instancier une nouvelle
variable ds mon système.
J'ai donc développé le bout de script suivant:

Dim cmd, Commande, WshShell

Commande = "set DateNow=" & Date

Set WshShell = CreateObject("WScript.Shell")
cmd=WshShell.ExpandEnvironmentStrings("%compsec%")
WshShell cmd & "/C" & Commande,1

A l'éxécution, j'ai une erreur "Erreur d'exécution Microsoft VBScript: Cet
objet ne gère pas cette propriété ou cette méthode".

L'erreur doit être évidente mais je ne la vois moi pas ....
Quelqu'un avec une meilleure vue que la mienne ??
Merci

DL

2 réponses

Avatar
Jean-Claude BELLAMY
Dans le message news:O%23m% ,
Dom s'est ainsi exprimé:

Bonjour,

Je cherche à lancer via WSH la commande Set pour instancier une
nouvelle variable ds mon système.
J'ai donc développé le bout de script suivant:

Dim cmd, Commande, WshShell

Commande = "set DateNow=" & Date

Set WshShell = CreateObject("WScript.Shell")
cmd=WshShell.ExpandEnvironmentStrings("%compsec%")
WshShell cmd & "/C" & Commande,1
A l'éxécution, j'ai une erreur "Erreur d'exécution Microsoft
VBScript: Cet objet ne gère pas cette propriété ou cette méthode".

L'erreur doit être évidente mais je ne la vois moi pas ....



Ah ouais, alors comme çà, tu lances une instance de la classe Shell, sans
préciser de méthode !!!
Cosaque !!!!;-)

AMHA, "WshShell.run cmd ... " serait meilleur !

Et pour la beauté du script, et surtout pour que çà marche, il est
recommandé de séparer les commutateurs et autres paramètres par des espaces
!
WshShell.run cmd & " /C " & Commande,1


Enfin, ce que tu as écrit, (aux erreurs près corrigées), çà marche, mais
c'est vraiment du bricolage de bourrin fatigué!
En un mot, c'est LAID ! ;-)
Pourquoi passer par un "shell.run machin bidule", alors qu'il existe la
propriété "Environment" dans la classe Shell de WSH !
Qui te permet DIRECTEMENT de définir /modifier/ des variables
d'environnement !

Exemple :

Set shell = WScript.CreateObject("WScript.Shell")
Set env=Shell.Environment("system")
env("DateNow")=Now


Et je te signale qu'il existe aussi la variable d'environnement toute faite
%DATE% !!!

@echo off
setx DateNow %DATE%
echo %DateNow%

La commande SETX permet de rendre PERMANENTE la variable, en dehors du batch
SETX fait partie du Resource Kit, mais il est téléchargeable gratuitement :
http://www.microsoft.com/windows2000/techinfo/reskit/tools/existing/setx-o.asp

Attention : sa syntaxe est légèrement différente de SET
SETX essaivar toto
(sans le signe "=")



--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
http://www.bellamyjc.org *


Avatar
Dom
Warf !!!! Que serions nous (et moi surtout) sans vous Ö MÔSSIEUR JC BELLAMY
!!!!!
Encore une belle leçon de chose ....
Tout simplement "Merci" !