2016-11-09 7 views
0

Ich versuche, die Umgebungsvariablen aus Batch-Datei Session.bat zu setzen, die in Umgebungsvariable gesetzt Daten von meinem C++ Code zu speichern einige Sitzung bezogen wird soetwas wie dieserUmgebungsvariablen Batch-Datei und C++

Inhalt erzeugt wird

Session.bat

set SessionID_User=SAsdC123ASCascs123 echo %SessionID_User%

ich habe versucht, es von meinem C++ Code scheint mit CreateProcess und system aber keiner ausführen zu arbeiten.

Obwohl die Batch-Datei aus der EXE-Datei ohne Ausnahmen ausgeführt wird, wenn ich versuche, die Umgebungsvariable zu sehen, die festgelegt werden sollte, sehe ich es nicht in der Variablenliste, die ich auf der Konsole mit set drucken ich kann nicht sehen SessionID_User=SAsdC123ASCascs123

Im Folgenden ist der Weg ich den Prozess habe

C:\Users\admin\Desktop>Session.exe 

C:\Users\admin\Desktop>set SessionID_User=SAsdC123ASCascs123 

C:\Users\admin\Desktop>echo SAsdC123ASCascs123 
SAsdC123ASCascs123 

C:\Users\admin\Desktop> 

Warum ist die Umgebungsvariable nicht gesetzt wird, wenn ich Batch-Datei von meiner exe ausführen, sondern setzt alles gut, wenn Batch-Datei ausgeführt wird auf es besitzen ?

Eine andere Frage ist, Hows Create unterscheidet sich von system() in diesem usecase und im allgemeinen

Antwort

2

Wenn Sie die Batch-Datei aus der ausführbaren ausführen, werden Sie einen neuen Prozess.

Die Stapeldatei legt Umgebungsvariablen lokal in diesem neuen Prozess fest.

Es gibt keine Möglichkeit, sie bis zu dem übergeordneten Prozess exportieren zurück, aber es gibt Möglichkeiten der Kommunikation Ergebnisse zurück, einschließlich:

  • über die Standardausgabe.
  • Über eine gespeicherte Datei.
  • Über die Windows-Registrierung (z. B. Befehl reg und Freunde).
+0

Wie machst du das, kannst du mir eine Spur geben? @Cheers – DevMac

+0

Beispielsweise können Sie in der Stapeldatei die Umleitungsoperatoren verwenden, um die Ausgabe von echo in eine Datei zu platzieren, die später vom übergeordneten Prozess gelesen werden kann. Wie 'echo.SessionId = Blah45> results.txt'. –

Verwandte Themen