02 Jan 2008通过四个小故事告诉你优化环境变量的好处及道理
小知识:什么是环境变量
Windows XP环境变量是提供给系统及用户应用程序使用的一些值,比如系统目录位置、临时文件目录等。
乌鸦口渴了,到处找水喝。终于,它找到了一个大水罐。水罐里的水并不多,嘴够不到水面,它试了多次都没有成功。就在它想放弃的时候,突然想到一个主意。乌鸦叼来了一块小石子投到水罐里,不断重复着这个动作……水面渐渐升高了,乌鸦高兴地喝到了水。
寓意: 有些东西虽然看起来微不足道,但如果积少成多,便会带来很大变化。
系统里的临时文件正是如此,如果积累得太多(由于非法操作造成的程序退出会形成大量此类文件滞留在硬盘中),就会造成分区紧张和大量磁盘碎片。要禁止临时文件是不可能的,何不疏导一下呢?你只需要修改一下环境变量中的临时文件目录变量。
右击“我的电脑”选择“属性”,在“高级”选项卡中点击窗口下方的“环境变量”,在此窗口中分为“用户变量”和“系统变量”两部分,前者只对当前用户有效,而后者则是对系统中的所有用户有效。“用户变量”中的“Temp”和“Tmp”就是对应临时文件目录的保存位置,选中它们后点击修改,然后把这些垃圾的存放地点改为别的分区目录吧(必须是已经存在的路径)!需要注意的是,这样做只是把临时文件暂时弄到别处去了,它的体积不会变小,在撑爆别的分区前,还是定期清理一下好。
大小猫,大小门
有人养了两只猫,一大一小,他为猫做了套新的猫房,分别根据大猫和小猫的体型各开了一扇门,也是一大一小。结果他发现,每次大小猫都只从大的那个门走。
寓意:有时过分的个性化反而会导致冗余。
你知道这和DLL有什么关系吗?打开一些程序时你有可能收到缺少DLL文件的错误提示,这些文件一般是程序本身自带的库或者某种语言通用的运行库。碰上这种错误,最好的方法就是下载需要的DLL文件,然后放入系统目录或者软件所在目录,每个程序目录都放显然太冗余了,如果放在系统目录,重装时想备份根本找不着,用环境变量把它们集中放在一个目录吧!
在D:\建立一个“Runtime”目录,把需要的软件运行库放在里面,然后按照上文的方法打开“系统变量”设置,选择“系统变量”的“Path”项点击“修改”,里面原来包含“%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;”(见图),程序调用DLL文件时也会搜索这些目录,在最后添加“;D:\runtime”(不含引号),这样所有的程序在需要DLL时都会先找找这个目录了。
骆驼和阿拉伯人
一个阿拉伯的骆驼夫把货满载在骆驼背上后,问骆驼是喜欢上山还是喜欢下山。骆驼振振有词地说:“你为什么这样问我?难道经过沙漠的平坦大道都关闭了吗?”
寓意:不了解事物的特性就不可能正确使用它。
如果你因为运行msconfig.exe能直接打开系统配置实用程序,就以为放在硬盘里的其他程序也可以像这样省略路径,那就大错特错了。这些能够直接运行的程序要不就是在系统目录下(默认的系统变量路径),要不就是将自身加入了系统变量(如C++编译器)。如果你希望今后运行程序时不用输路径,可以在“Path”项中增加程序所在目录的位置。
鸟、兽和蝙蝠
鸟与野兽宣战,双方各有胜负。蝙蝠遇见鸟就自称鸟,遇见兽就自称兽,当鸟兽停战后才明白了蝙蝠的欺骗行为,因此将他赶出日光之外。
寓意:任何事物都有两面性,不要以为好的东西永远是好的。
系统变量能帮我们忙,但有时也会惹麻烦,有很多莫名其妙的故障就是系统变量造成的。
从刚才的几个实例可以看出,包括msconfig.exe在内的很多系统内置程序都是依赖于系统变量的,因此如果出现运行时找不到程序的情况,就应该查看一下系统变量是否正常,如果缺失可以按照上文的内容手工填入。另外,应尽量避免在系统变量中使用中文路径,因为很多国外程序在使用这些系统变量时会出现无法访问的情况。
Til next time,
Jason at 00:00