win 10 下环境变量的中 path 加了一个包含可执行程序.exe 的目录,重启电脑后为什么在 cmd 里不能直接用程序名运行,得要加上.exe 才行。很奇怪。像 python 那样的目录就可以。
1
lxc404 Aug 15, 2019 via Android
没能复现这个问题。。。
WIN10 1809 18362.267 |
2
beric OP @olaloong 我怀疑是我系统的问题了,有些目录可以,有些就不行,比如一个 QT 的目录包含了 gcc,我加进去后就得在 cmd 窗口里输入 gcc.exe 才行,其它的一些像 cmake 那些,加入 path 后就直接输入 cmake 就好了,很奇怪。
|
3
sosilver Aug 15, 2019 via Android
PathExt 环境变量查一下
|
4
beric OP |
5
ETiV Aug 15, 2019
(话说 #3 的头像看着很像 sublime text 的 icon )
忙猜:PATH 路径下有个没有 exe 的文件(路径)存在,所以执行不到?加了 exe,就能找到 LZ 想要的文件了 不知道 win 下有没有 which、whereis 这种存在,可以看看 |
6
hoyixi Aug 15, 2019
你说的不能运行,报什么错?
|
7
hoyixi Aug 15, 2019 看了你 4 楼,感觉可能是环境变量里的某个其它路径(这个路径在环境变量里的顺序,先于你的目标路径)下,包含了同名文件,但是该文件不可运行
验证的话,可以把你的目标路径放到环境变量 PATH 的开头(第一位),试试看 |
8
Tumblr Aug 15, 2019 在 path 中添加了,cmd 没有重新加载。
其实在 Windows 10 里,还是推荐用 PowerShell 了,如果长期使用,可以在 sysdm.cpl 下修改;如果临时使用,可以直接这样修改: $env:path += ";_path_to_exec_" 这样就立马生效了。 |
9
baobao1270 Aug 15, 2019 可能是 PATHEXT 变量的问题,在该变量里加入".exe"
也可能是 PATH 目录优先级的问题 |
10
R0n1n Aug 16, 2019 via Android pathext 中的定义有优先级,可能是那个目录有个跟.exe 同名的.bat 或者.cmd 之类的文件...?.bat 和.cmd 等这些后缀的文件优先级比.exe 要高。
|
11
lonewolfakela Aug 16, 2019
用 where 命令看看有没有同名的可执行的东西吧
|
12
beric OP @lonewolfakela
@R0n1n @baobao1270 @hoyixi @Tumblr 感谢,之前问题就解决了,感觉是之前的目录权限有毒,也说不上来为什么。 话说现在 win 10 更新也没个具体说明,有些老的软件突然就不正常工作了,也不知道为什么,很烦…… |