Wie das setzen von Umgebungsvariablen im vbs, die gelesen werden können in der aufrufenden batch-Skript
Habe ich eine batch-Datei ruft eine vbscript-Datei. Ich bin versucht zu haben, die vbscript-Datei ändern, wird eine Umgebungsvariable, die später in der batch-Datei aufruft, die vbscript-Datei.
Hier sind snippetes aus den Dateien.
Eltern.bat
Set Value="Initial Value"
cscript Child.vbs
ECHO Value = %VALUE%
Kind.vbs
Set wshShell = CreateObject( "WScript.Shell" )
Set wshSystemEnv = wshShell.Environment( "Process" )
wshSystemEnv("VALUE") = "New Value"
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nicht. Einen Prozess übergeben werden können environment-Variablen an untergeordnete Prozesse, nicht aber auf deren Eltern - und in diesem Fall die Eltern cmd.exe, welche Ihre Eltern.bat-Datei.
Natürlich gibt es auch andere Möglichkeiten zu kommunizieren, Informationen zurück an die übergeordnete batch-Datei - Ausgabe auf stdout oder in eine Datei ist ein offensichtlicher Weg, z.B.
ja, können Sie.... allerdings müssen Sie resetvars in Ihrer Sitzung. finden Sie unter den folgenden link:
Gibt es einen Befehl zum aktualisieren von Umgebungsvariablen aus der Eingabeaufforderung in Windows?
'RESETVARS.vbs
Dies ist, wie ich es gemacht habe:
Dann in einem separaten VB-script (resetvars.vbs), rief ich aus dem CMD script:
Ich glaube nicht, dass Sie dies tun können. Zumindest würden Sie brauchen, um Durcheinander mit der Umwelt block in den aufrufenden Prozess, und es gibt keine Garantie, dass es dies respektieren...
Ho über dieses:
Ist es keine Reine batch-script, funktioniert aber ok.