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
用处大家自己想,我就不废话了,总结完毕!