2016-11-09 18 views
0

Session.bat環境のバッチファイルを使用して変数とC++

set SessionID_User=SAsdC123ASCascs123 echo %SessionID_User%

私はCreateProcesssystemを使用して、私のC++コードから、それを実行しようとしましたが、どれも動いていないようにみえます。

バッチファイルは、設定しようとしている環境変数を表示しようとすると、例外なく例外ファイル内から実行されますが、変数リストには表示されません。set私は以下 SessionID_User=SAsdC123ASCascs123

を見ることができない私は、プロセス

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> 

はなぜ環境変数が、私は私のexeファイルからバッチファイルを実行するときに設定し、それにバッチファイルを実行するとき、すべての良い設定だばかりされていませんでした方法です。自分の ?あなたは、あなたが新しいプロセスを作成している実行可能ファイルからバッチファイルを実行すると別の問題がある

、ハウズのCreateProcessは、システムからの()異なるこのユースケースではと一般

答えて

2

です。

バッチファイルは、環境変数をその新しいプロセスにローカルに設定します。

親プロセスまで、それらをバックにエクスポートする方法はありませんが、通信結果の方法を含む、裏があります:標準出力ストリームを介し

  • ストアド・ファイル経由。
  • Windowsレジストリを使用します(たとえば、コマンドregと友人)。
+0

どうすればいいですか、私にリードを与えることができますか? @Cheers – DevMac

+0

たとえば、バッチファイルでは、リダイレクション演算子を使用して、親プロセスが後で読むことができるファイルに 'echo'出力を置くことができます。 'echo.SessionId = Blah45> results.txt'のようにします。 –

関連する問題