cmd命令行提示:xxx不是内部或外部命令,也不是可运行程序 | 您所在的位置:网站首页 › dos文件取名规则是什么意思呀 › cmd命令行提示:xxx不是内部或外部命令,也不是可运行程序 |
错误信息
在cmd里面运行安装的软件,提示“不是内部或外部命令,也不是可运行程序” 例如: mysql -uroot -p123456 ipconfig 当操作系统提示:“xxx不是内部或外部命令,也不是可运行程序”的时候,说明它找不到xxx.exe这个程序在哪个位置。 小知识:在Windows操作系统,程序的.exe可以省略,所以: cmd运行ipconfig命令 —— 意思是找到并运行ipconfig.exe cmd运行mysql命令 —— 意思是找到并运行 mysql.exe 以此类推,所有的命令,都对应着一个.exe文件。 注意事项1、注意:修改了环境变量,要重新打开cmd窗口才能生效 2、如果使用了相对路径: 举例1:%JAVA_HOME%设置为D:\jdk8(此处没有斜杠),path添加%JAVA_HOME%\bin(此处有斜杠),一定要注意分隔符不要重复。 举例2:%JAVA_HOME%设置为D:\jdk8\ (此处有斜杠),后面path添加就必须是%JAVA_HOME%bin(此处没有斜杠) 否则拼接出来的路径是错误的。少了斜杠或者多了斜杠都不行。 3、分号;仅仅是用来分隔多个值用的(比如path里面有很多个值),单个变量只有一个值的时候,千万不要在末尾加; 情况判断错误分成两种情况,第一种情况是windows系统自带的命令找不到(这个是不正常的,因为默认情况下都可以使用,说明误删了环境变量)。参考:Windows常用命令大全 比如:ipconfig、ping、netstat、cd、dir、telnet、net、del…… 第二种是第三方软件的命令找不到(这些软件都是我们自己安装的),比如:java、mysql、python、php、git、maven、nodejs、msfconsole…… 这两种的解决办法是不一样的。 第一种情况:系统命令不存在原因:系统环境变量被误删除 解决办法点击电脑左下角Windows徽标,输入path,打开环境变量配置 找到系统变量里面的Path,进入编辑 点击右上角新建,依次添加以下两条环境变量:C:\WindowsC:\Windows\system32 如图所示: 注意:修改了环境变量,要重新打开cmd窗口才能生效 第二种情况:第三方软件命令不存在原因:exe软件的路径没有添加到path中 解决办法在path里面添加这个exe的路径即可。注意是添加路径,不是添加程序地址。注意:修改了环境变量,要重新打开cmd窗口才能生效 举例1:E:\dev_runApp\jdk1.8.0_74\bin 这个路径面有java.exe,把路径添加到path以后可以使用java命令。 举例2:C:\Program Files\Python39 这个路径里面有python.exe,把路径添加到path以后可以使用python命令。 举例3:E:\dev_runApp\mysql-5.7.28-winx64\bin 这个路径里面有mysql.exe,把路径添加到path以后可以使用mysql命令。 总结也就是说,如果你想要让xxx命令在cmd可以正常使用,必须要把xxx.exe的路径添加到path中,系统命令也是一样。 我们可以使用everything软件搜索这个提示不是内部或者外部命令的程序路径,添加到path即可。 如果有多个python版本,比如python2和python3(程序名字都是python.exe),可以都添加进去吗?到时候运行的是哪个? 这个时候是以路径的顺序为准的,哪个路径在前面,哪个就生效。 没有必要删除只保留其中一个。 使用“上移”、“下移”功能来改变顺序,就可以让排在前面的生效。 另一种做法:修改程序名修改程序名字,比如python2.7的python.exe改成python2.exe,python3.9的python.exe改成python3.exe。 这样的话命令就区分开了。 cmd里面使用python2命令,代表打开python2版本的程序,使用python3命令,代表打开python3版本的程序(在kali操作系统里面,命令就是这样使用的)。 补充知识2:以程序全路径代替程序名如果需要同时使用java 8和java 11,有的软件依赖java 8,有的软件依赖java 11,环境变量有优先级,就算多个都添加也只有一个生效,怎么办? 在这种情况,我们不再使用java这个命令来代替位于某个路径的java.exe程序,而是直接指定需要使用的版本的java.exe文件的地址。 举例1 给burp指定Java版本现在环境变量的java版本是java 11。我们要使用java 18启动最新的Burp Suite。 编写.bat脚本文件,使用程序的绝对路径启动,不再使用程序名称: 编写的start-burp.bat内容: E:\jdk-18.0.2.1\bin\java -jar BurpLoaderKeygen.jar 这里就直接指定了E:\jdk-18.0.2.1\bin\java文件的位置(.exe被省略了),而不是使用java -jar BurpLoaderKeygen.jar启动。 不需要由操作系统去根据java到path环境变量里面寻找java.exe的路径,也就不存在版本混淆的问题。 举例2 给tomcat指定Java版本现在环境变量的java版本是java 11。我们需要使用java 8启动tomcat-8.0.22。 在apache-tomcat-8.0.22\bin\startup.bat开头加上一句话(加在setlocal后面) SET JAVA_HOME=E:\dev_runApp\jdk1.8.0_74
|
CopyRight 2018-2019 实验室设备网 版权所有 |