OurJS


OurJS-我们的JS, 我们的技术-IT文摘; 专注JS相关领域;
我们热爱编程, 我们热爱技术;我们是高大上, 有品味的码农;

欢迎您订阅我们的技术周刊


我们会向您分享我们精心收集整理的,最新的行业资讯,技术动态,外文翻译,热点文章;
我们使用第三方邮件列表向您推送,我们不保存您的任何个人资料,注重您的隐私,您可以随时退订,

欢迎分享您的观点,经验,技巧,心得

让我们一起找寻程序员的快乐,探索技术, 发现IT人生的乐趣;


本网站使用缓存技术每次加载仅需很小流量, 可在手机中流畅浏览;
如果您发现任何BUG,请即时告知我们: ourjs(at)ourjs.com

Node.JS通过读取PATH环境变量获取可执行文件的安装地址


分享到
分类 大话编程   关键字 分享   发布 ourjs  1494570584077
注意 转载须保留原文链接,译文链接,作者译者等信息。  
有暑假我们可能需要获取某些可执行程序的安装地址,比如说git,node.js等。

此时我们可以直接读取环境变量来获取。

1. 访问环境变量

在node.js中可以通过 process.env来获取所有环境变量,如:

console.log(process.env)
输出结果:

{ ACLOCAL_PATH: '/mingw64/share/aclocal:/usr/share/aclocal',
  ALLUSERSPROFILE: 'C:\\ProgramData',
  APPDATA: 'C:\\Users\\Administrator\\AppData\\Roaming',
  COMMONPROGRAMFILES: 'C:\\Program Files\\Common Files',
  'CommonProgramFiles(x86)': 'C:\\Program Files (x86)\\Common Files',
  CommonProgramW6432: 'C:\\Program Files\\Common Files',
  COMPUTERNAME: 'SKY-20161119COR',
  COMSPEC: 'C:\\Windows\\system32\\cmd.exe',
  CONFIG_SITE: '/mingw64/etc/config.site',
  DISPLAY: 'needs-to-be-defined',
  EXEPATH: 'C:\\Program Files\\Git',
  FP_NO_HOST_CHECK: 'NO',
  HOME: 'C:\\Users\\Administrator',
  HOMEDRIVE: 'C:',
  HOMEPATH: '\\Users\\Administrator',
  HOSTNAME: 'SKY-20161119COR',
  INFOPATH: '/usr/local/info:/usr/share/info:/usr/info:/share/info',
  LANG: 'C.UTF-8',
  LOCALAPPDATA: 'C:\\Users\\Administrator\\AppData\\Local',
  LOGONSERVER: '\\\\SKY-20161119COR',
  MANPATH: '/mingw64/share/man:/usr/local/man:/usr/share/man:/usr/man:/share/man',
  MINGW_CHOST: 'x86_64-w64-mingw32',
  MINGW_PACKAGE_PREFIX: 'mingw-w64-x86_64',
  MINGW_PREFIX: '/mingw64',
  MSYSTEM: 'MINGW64',
  MSYSTEM_CARCH: 'x86_64',
  MSYSTEM_CHOST: 'x86_64-w64-mingw32',
  MSYSTEM_PREFIX: '/mingw64',
  NUMBER_OF_PROCESSORS: '4',
  OneDrive: 'C:\\Users\\Administrator\\OneDrive',
  ORIGINAL_PATH: '/mingw64/bin:/usr/bin:/c/Users/Administrator/bin:/c/Windows/system32:/c/Windows:/c/Windows/System32/Wbem:/c/Win
dows/System32/WindowsPowerShell/v1.0:/c/Program Files/TortoiseSVN/bin:/c/Program Files/nodejs:/c/Program Files (x86)/Skype/Phone:
/c/Program Files/Microsoft SQL Server/110/Tools/Binn:/c/Program Files (x86)/Microsoft SDKs/TypeScript/1.0:/c/Program Files/Micros
oft SQL Server/120/Tools/Binn:/c/Program Files/TortoiseGit/bin:/cmd:/c/Users/Administrator/AppData/Roaming/npm',
  ORIGINAL_TEMP: '/tmp',
  ORIGINAL_TMP: '/tmp',
  OS: 'Windows_NT',
  PATH: 'C:\\Users\\Administrator\\bin;C:\\Program Files\\Git\\mingw64\\bin;C:\\Program Files\\Git\\usr\\local\\bin;C:\\Program F
iles\\Git\\usr\\bin;C:\\Program Files\\Git\\usr\\bin;C:\\Program Files\\Git\\mingw64\\bin;C:\\Program Files\\Git\\usr\\bin;C:\\Us
ers\\Administrator\\bin;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v
1.0;C:\\Program Files\\TortoiseSVN\\bin;C:\\Program Files\\nodejs;C:\\Program Files (x86)\\Skype\\Phone;C:\\Program Files\\Micros
oft SQL Server\\110\\Tools\\Binn;C:\\Program Files (x86)\\Microsoft SDKs\\TypeScript\\1.0;C:\\Program Files\\Microsoft SQL Server
\\120\\Tools\\Binn;C:\\Program Files\\TortoiseGit\\bin;C:\\Program Files\\Git\\cmd;C:\\Users\\Administrator\\AppData\\Roaming\\np
m;C:\\Program Files\\Git\\usr\\bin\\vendor_perl;C:\\Program Files\\Git\\usr\\bin\\core_perl',
  PATHEXT: '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC',

2. 从Path获取可执行文件地址

一般的可地文件的地址都存放在Path环境变量中,并且以分号分隔。此时,我们可以通过查找这个变量来得知文件的真实路径。

function getExePath(extName) {
  var strPath   = process.env['PATH']

  var nodePath  = strPath.split(';').filter((str) => {
    if (str.toLowerCase(extName).indexOf(extName.toLowerCase()) > 0) {
      return true
    }
  }) || []

  return nodePath[0]
}

比如说,查找git和node.js的安装地址

console.log(getExePath('nodejs'))
console.log(getExePath('git'))

输出结果

C:\Program Files\nodejs
C:\Program Files\Git\mingw64\bin











社区评论 ( Beta版 )
OnceDoc 您自己的企业内容管理系统——文档、流程、知识库、报表、网盘All In One

访问404页面,寻找丢失儿童
 热门文章 - 分享最多
  1. JavaScript使用ES6的Class面向对象继承时 this is not defined 解决方法
  2. Docker改名Moby:急于商业化陷入品牌更名乱象
  3. Java已快过时?斯坦福大学将JavaScript作为计算机科学入门课
  4. TCP/UDP协议比较:在Node.JS中UDP服务器和客户端通信示例
  5. Node.JS通过原型和类继承EventEmitter,实现收发事件的几种方法
  6. 2016 年崛起的 JS 项目
  7. 如何基于SVG矢量图制作一个可填写信息的可视化表单-OnceVI
  8. 周鸿祎:一些程序员没有商业意识,却又很自负,一看就知道不会创业
  9. Node.js网页抓取:一个最简单的http请求客户端示例(request client)
  10. 学哪种语言的最赚钱?调查显示JavaScript和SQL是程序员最常用的语言
  11. AirJD-简单好用的免费建站工具

 相关阅读 - 大话编程
  1. 程序员年纪大就做不了了?这些45到60岁的码农还在写代码
  2. 国家卫计委发文要求互联网医院全部注销
  3. linux用tar文件压缩命令备份系统的方法
  4. JavaScript使用ES6的Class面向对象继承时 this is not defined 解决方法
  5. TCP/UDP协议比较:在Node.JS中UDP服务器和客户端通信示例
  6. 周鸿祎:一些程序员没有商业意识,却又很自负,一看就知道不会创业
  7. 微信抢红包插件示例代码及其实现原理
  8. 学哪种语言的最赚钱?调查显示JavaScript和SQL是程序员最常用的语言
  9. 搜狐社区宣布关闭,又有多少人的回忆被埋葬在PC时代里?
  10. 第三方评论平台多说即将关闭

 关键字 - 分享
  1. 这几款app自动化测试工具 你应该了解
  2. 从出现到现在,小程序带给企业的各种好处。
  3. 小程序的三个更新,会给企业带来巨大改变!
  4. 扫描识别控件Dynamic Web TWAIN 13.0发布,新增统一的Dynamsoft服务
  5. 【重大更新】DevExpress v17.1新版亮点(Dashboard篇)
  6. .net reactor使用教程(三)——.net reactor应用场景
  7. 小程序的发展情况,企业可以从这些方面了解!
  8. 小程序未来肯定会朝着这些方面发展,企业必须做好!
  9. LoadRunner12使用教程(七)——准备脚本回放
  10. MailBee.NET Objects接收电子邮件(POP3)教程二:接收和显示HTML电子邮件

 欢迎订阅 - 技术周刊

我们热爱编程, 我们热爱技术; 我们是高端, 大气, 上档次, 有品味, 时刻需要和国际接轨的码农; 欢迎您订阅我们的技术周刊; 您只需要在右上角输入您的邮箱即可; 我们注重您的隐私,您可以随时退订.
加入我们吧! 让我们一起找寻码农的快乐,探索技术, 发现IT人生的乐趣;


 关注我们

我们的微信公众号: ourjs-com
打开微信扫一扫即可关注我们:
IT文摘-程序员(码农)技术周刊

ourjs官方微信号