環境変数の内容を取得するヤツはこんな感じなんですよ。
(WScript Shell Object).ExpandEnvironmentStrings(“%WinDir%”);
で、ですね、
肝心の環境変数知らんのやけど・・・
ってなるわけよ。
検索すればこういった親切な解説サイトはいくらでも見つかるのだけど
もう少し動的にとりたいなぁとか思ったので
そこでSetコマンドを使って取得する
ようにしてみた。
それがこれ
(function() {
/**---------------------------------------------------------------
* 環境変数とかとってくる
* @param {string} filter
* @return {list}
*/
function getEnvStr(filter)
{
var filter = filter || "";
var wsh = WScript.CreateObject("WScript.Shell");
var cmd = ["cmd.exe /c set ", filter];
wsh = wsh.Exec(cmd.join(""));
var file_list = wsh.StdOut.ReadAll();
file_list = file_list.split("\r\n");
file_list.pop();
var return_list = [];
for (i in file_list) {
return_list.push(file_list[i].split("=")[0]);
}
return return_list;
}
/**---------------------------------------------------------------
* プリント
* @param {string} str
* @param {boolean} carriage_return キャリッジリターン
*/
function print(str, carriage_return)
{
var c_ret = carriage_return || false;
if (c_ret) {
WScript.StdOut.Write("\r" + str);
return;
}
WScript.StdOut.Write("\n" + str);
return;
}
/**-------------------------------------------------------------------------
*
* @main
*
*/
function main()
{
var wsh = WScript.CreateObject("WScript.Shell");
var sysPath = wsh.ExpandEnvironmentStrings("%WinDir%");
print(sysPath);
print("");
var envStrList = getEnvStr();
print("======================環境変数一覧ここから======================");
print("");
for (i in envStrList) {
print("");
print("環境変数名");
print(envStrList[i]);
print("環境変数内の内容");
print(wsh.ExpandEnvironmentStrings("%" + envStrList[i] + "%"));
}
WScript.Sleep(5000);
}
// run
main()
})();
まぁ、大したことはやっていない。
dos実行させてリターンを取得。
そこから環境変数をリストとして返すって感じ。
これが意外にシンプルで使いやすかった。
味噌はココ。
これで環境変数を動的にそう!
以上今日のメモでした。
一応GitHubにも上げておいた、


