Wise安装脚本中设置环境变量

System Internals提供了一些很好用的小工具,如Process Explorer, File Monitor, PsTools等等,在工作中我常常使用它们。

尤其是在trouble-shooting的时候,常常能够起到事半功倍的效果。

下面分享一下昨天使用Registry Monitor帮同事搞定设置环境变量的问题。

 

问题描述:同事L在用Wise做安装程序,安装程序一共有几个。其中一个是主安装程序,其他的姑且称为子安装程序吧。

主安装程序需要设置一个系统环境变量,然后子安装程序运行时需要读取这个系统环境变量的值。这个问题应该很简单吧?!

同事L看了看Wise的文档发现它只提到如何读环境变量但是没有设置的。于是L想做一个批处理(.bat)文件来设置该变量,文件内容

示例如下:

 

set MYENVVAR=TESTING_1

 

然后在Wise的脚本里边调用这个批处理文件。但是这样不解决问题,原因是:环境变量NAME是个临时性的,只在bat文件运行的进程生命期是存在的,

它不会影响到后续的进程或并行的其他进程。这个进程(可能是cmd.exe)结束后,变量NAME也就终结了。当然还有一种可能就是,这个进程如果开启

了子进程,子进程能够继承它的环境变量。但是这种子进程的方法对于L的问题显然不可行,因为没有办法将子安装程序作为批处理程序的子进程。

L上网搜索了半天,发现问这个问题的人还很多,但是没有什么简单的解决办法。(这也说明了互联网无效信息很多,有效信息却少的可怜,信息产业

还是大有前途地。)

L过来问我,我给L的建议是:用操作系统自带的“系统属性”来设置环境变量,同时打开Registry Monitor监视看看那个注册表项被修改了。L去试了试,

两分钟不到就搞定了。

image

 

 

 

设置Registry Monitor的Filter包涵变量名称:

image  

点击OK设置该变量时,Registry Monitor的截图如下:

image

最前面的记录就是我们需要找的注册表项:

HKLM/System/CurrentControlSet/Control/Session Manager/Environment/MYENVVAR

找到这个项之后,L很快就用Wise读写注册表的功能搞定了这个问题。

 

小结:君子性非异也,善假于物也。合理地运用工具,让你的生活轻松很多。

Happy Programming!

 

相关链接:

1. RegMon for Windows v7.04

http://technet.microsoft.com/en-us/sysinternals/bb896652.aspx

 

2. System Internal (已经被微软收购了,更名为Windows Sysinternals)

http://technet.microsoft.com/en-us/sysinternals/default.aspx

 

镜像地址:

http://blog.whitejadesoft.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bruce Jia(上海)

熬夜码字换酒钱

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值