Windows系统环境变量path优先级测试报告

转自:http://bluekylin.cnblogs.com/archive/2005/12/16/298797.html

总以为自己很已经会操作windows了,今天在它帮助中看到一大片还不知道的命令行工具,不过这篇随笔跟这些工具没什么关系的,只是我在用一个命令的时候打错了,结果导致我忍不住要写点东西。 
当有些命令的运行结果比较长(好几页)的时候,我经常会把它们的结果输出到一个文本中,这绝对是个好习惯,比如,利于搜索: 
如果我想查找D盘的一个文件,不知道它放在哪个文件夹中,我会使用tree命令把D盘的所有文件名写入到文本中,再从文本中查询,速度比直接搜索D盘来得快,而且相对使用了较少的系统资源。不信你可以试试。 
把D盘所有文件名和目录结构写到C盘的1.txt中的命令为tree d:>c:1.txt 
这个文件还可以保存起来,以后还可以用,如果没有重大更新的话。

呀,扯远了 : )

今天不知道怎么回事,可能开小差,一个命令的结果输出写成了>cmd,立马重写,也没在意那个被写入的cmd文件,然后习惯性地关闭了命令行窗口(我也不知道为什么,明知自己还要在这个窗口中输命令,却把它关了),查看输出,接着学习下一个工具的使用,运行cmd,呆掉,出来刚才的输出结果。才-发-现,不,才明白过来是刚才那个输了cmd惹的祸,想了一下那个cmd文件的位置,应该在当前用户配置文件夹中(cmd的默认起始位置,此cmd非彼cmd),在的,删了就好了。顿时觉得奇怪,用户配置文件夹好像没设置PATH环境变量怎么能直接…… 
应该就是*别的path吧!

然后就觉得好玩,一一测试了环境变量PATH的优先级。

测试path4个 
%userprofile%(系统默认设置的,当前用户配置文件夹,Documents and Settings 中以当前用户命名的文件夹,我当前为Administrator) 
%systemroot%(XP下是windows) 
%systemroot%/system32 
d:\bat (用户定义path) 
分别做四个无扩展名的文件名为"test"的文件,分别放到上面四个文件夹中,各test文件的内容设置为所在文件夹名

运行test,首先出场的是(显示的test文件内容) 
Administrator 
(然后把test文件从所在文件夹delete掉) 
再运行test,出场的是 
system32 
(delete掉) 
再运行test,出场的是 
windows 
(delete掉) 
最后是 
d:\bat 
(delete掉)

OK,结果出来了,path优先级从高到低排列: 
%userprofile% 
%systemroot%/system32 
%systemroot% 
用户定义path

用处大家自己想,我就不废话了,总结完毕!

上一篇:mongoengine中collection名称自动生成机制浅探


下一篇:C++学习笔记12:运算符重载(赋值操作符1)