dos 目录遍历命令(Dos下系统在当前目录和path环境变量这两者之间寻找程序的优先级)

大家在学习Java的时候应该都接触过Dos命令和JDK环境变量的配置,相信大家对它们也有一定的了解。不知道你们有没有这样的疑问,在Dos命令行下运行一个程序的时候,系统是先从当前目录寻找这个程序还是先从path环境变量中指定的路径去寻找。网上的教程和书籍对于这个问题要么是不讲,要么是观点不一致,结果自己还是一头雾水。不过这样也好,就算照本宣科地把结果给你,你的印象也不一定深刻,所以最好还是自己动手做实验验证下这个问题比较好。

为了证明这个问题,我找了2张图片,两张图片的文件名都是01.jpg,不同的是具体的图像内容,1个是黑猫的图片,另一个是白猫的图片,还有就是2张图片在硬盘中的存放位置也不一样,以我为例,我把01.jpg(黑猫图片)放在D:\entertainment\document这个目录下,01.jpg(白猫图片)则放在D盘的根目录下。然后把01.jpg(黑猫图片)所在的路径D:\entertainment\document配置到path环境变量中,步骤:我的电脑右键属性>高级系统设置>高级>环境变量>在系统变量里有path选项>双击打开,

dos 目录遍历命令(Dos下系统在当前目录和path环境变量这两者之间寻找程序的优先级)(1)

双击path

然后在弹出的编辑环境变量窗口点击右上角的新建按钮,接着把D:\entertainment\document输入到左边的环境变量路径中,最后一直点确定即可。如图:

dos 目录遍历命令(Dos下系统在当前目录和path环境变量这两者之间寻找程序的优先级)(2)

然后打开Dos命令行窗口,测试下环境变量的配置效果,

dos 目录遍历命令(Dos下系统在当前目录和path环境变量这两者之间寻找程序的优先级)(3)

当前处于C:\Users\ASUS这个目录,这个目录下没有01.jpg图片,如图:

dos 目录遍历命令(Dos下系统在当前目录和path环境变量这两者之间寻找程序的优先级)(4)

这时在命令行下键入01.jpg这个命令,再按回车Enter,

dos 目录遍历命令(Dos下系统在当前目录和path环境变量这两者之间寻找程序的优先级)(5)

显示01.jpg(黑猫图片)被打开,

dos 目录遍历命令(Dos下系统在当前目录和path环境变量这两者之间寻找程序的优先级)(6)

可以看出之前给01.jpg(黑猫图片)配置的环境变量生效了,虽然当前C:\Users\ASUS>这个目录没有01.jpg(黑猫图片),但是在D:\entertainment\document下面找到了。但是至此还是不能看出系统是先从path环境变量中指定的路径寻找的还是先从当前目录下寻找的,所以紧接着进行下一步。

在Dos命令行中输入d:,切换盘符到D盘根目录,我们知道01.jpg(白猫图片)就在D盘根目录下。接着输入01.jpg按回车,

dos 目录遍历命令(Dos下系统在当前目录和path环境变量这两者之间寻找程序的优先级)(7)

结果显示01.jpg(白猫图片)被打开。

dos 目录遍历命令(Dos下系统在当前目录和path环境变量这两者之间寻找程序的优先级)(8)

至此,也可以对研究的问题下个结论了。

结论:Dos下运行程序时,系统会优先在当前目录中寻找该程序,找到了直接运行当前目录中的程序。如果在当前目录中没找到,就会再到配置的path环境变量指定的路径中从上到下依次寻找,找到了正常运行,如果两者路径中都没找到该程序就会报错。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页