質問: ### 前提・実現したいこと .batで定義した環境変数をPowerBuilderで作成した実行ファイルから参照したい。 実行ファイルは.bat内でcallしています。 引数として渡す事は考えていません。 現在の妥協策はXML形式でファイル外出しにし、PowerBuilder側でProfileStringで取得する事です。 ### 発生している問題・エラーメッセージ PowerBuilderに環境変数を参照する関数が存在しないので、レジストリから環境変数を取得しようとしたが、.bat内でSETコマンドを使用して定義した環境変数がどこに格納されているのかわからず、取得に至らなかった。 (システム環境変数、ユーザ環境変数のパスは認知しています。) ### 該当のソースコード 特にありません。 ### 試したこと Web検索を行ったが、解決に至る解答が見つからなかった。 cmd.exeでSET AAA=AAAを実行し、閉じずにregedit.exe内で(値検索,完全一致)でAAAを検索したが、見つからなかったので、質問に至った。 SETコマンドで環境変数の一覧を表示した際にはAAA=AAAはもちろん、その他システム環境変数やユーザ環境変数も表示された。 cmd.exe内で抱えてしまっているのかなとも思っています。 ### 補足情報(言語/FW/ツール等のバージョンなど) Windows 7 Professional SP1 PowerBuilder 12.6
回答: 環境変数は**プロセスごと**に存在するものですので、システム設定でなく親プロセスで設定した環境変数は、レジストリから取得することはできません。 幸い、PowerBuilderからWindows APIも呼べるようですので、GetEnvironmentVariableを呼んで値を取得する、ということはできると思います。