LoginSignup
1
0

More than 3 years have passed since last update.

Node.jsで環境変数(AppDataの場所、PATH、その他)を取得したい

Last updated at Posted at 2019-05-29

結論

process.envを使います。

node.js - how to get the OS platforms user data folder - Stack Overflow

実践

ターミナルでnodeを叩くと始まるInteractive Rubyみたいなアレで実行してみましょう。

{ ALLUSERPROFILE : "C:\\ProgramData",
  APPDATA : "C:\\Users\\jotaro\\AppData\\Roaming",
  (省略
}

こんなObjectが返ってきました。これはもう要するに、process.env.APPDATAと書けば、"C:\\Users\\jotaro\\AppData\\Roaming"が返ってくるというわけですね。あとはprocess.env.PATHからPATHの編集も…は…できないようです。

制限

Process - Node.js Documentation によれば、

It is possible to modify this object, but such modifications will not be reflected outside the Node.js process. In other words, the following example would not work:

$ node -e 'process.env.foo = "bar"' && echo $foo

「値を変更することはできるけど、Node.jsのプロセス内だけでしか変わらないよ」(超適当訳)とのこと。PATHを通したり環境変数をいじることは不可能なようです。うっかりPATH破壊でもしたらと思うと、納得がいきます。
もしかしたら環境変数の変更方法というのもあるのかもしれませんが、適当にググった結果ないと判断しました。

応用

スタートメニュー

応用して、Windowsのユーザーのスタートメニューにアクセスしてみます。

test.js
console.log(`${process.env.APPDATA}\\Microsoft\\Windows\\Start Menu\\Programs\\`);

スタートメニューにショートカットを作るのも楽ちんですね。おしまい。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0